gpt4 book ai didi

javascript - Ruby & Rails - 将字符串转换为 Proc

转载 作者:行者123 更新时间:2023-11-30 18:46:33 25 4
gpt4 key购买 nike

我处于以下情况。当前 url 如下所示:

/categories/Art

我正在使用 name = location.pathname.split('/')[2] 来获取 URL 的 Art 部分。然后,我通过以下路径将 AJAX 发送回 Controller :http://localhost:3000/sort?sortMethod=name&category=name 或日期,以单击哪个链接为准。

现在在我的 Controller 中,我可以使用 sort = params[:category] 来获取字符串 name,但是我想对这个字符串做的是排序一个数组。 @categories 是一个对象数组,我想调用 .sort_by(&:sort) 但它无法识别 sort = 的字符串值名称。所以现在我想将这个字符串转换成一个 proc 以便对数组进行排序。有人知道我是如何做到这一点的吗?

非常感谢任何帮助!

最佳答案

先将其转换为符号,然后使用 Symbol#to_proc:

@categories.sort_by(&sort.to_sym)

但是请确保用户不能对您的对象调用任何恶意代码,例如:

http://localhost:3000/sort?sortMethod=destroy

保护自己的一种方法是使用 attribute_accessible在你的模型中定义然后做

@categories.sort_by(&sort.to_sym) if Category.accessible_attributes.include? sort.to_sym

关于javascript - Ruby & Rails - 将字符串转换为 Proc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5289943/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com