编辑2
如果你偶然发现这个问题,检查两个答案,因为我现在用pluck来回答这个问题
我有一个相当大的自定义数据集,我想返回作为json的回声。一部分是:
l=Location.find(row.id)
tmp[row.id]=l
但我想做的是
l=Location.find(row.id).select("name, website, city")
tmp[row.id]=l
但这好像不管用我该怎么做?
thx
编辑1
或者,有没有一种方法,我可以传递一个数组,只包含我想要包含的属性?
如果你偶然发现这个问题,检查两个答案,因为我现在用pluck来回答这个问题
我有一个相当大的自定义数据集,我想返回作为json的回声。一部分是:
l=Location.find(row.id)
tmp[row.id]=l
但我想做的是
l=Location.find(row.id).select("name, website, city")
tmp[row.id]=l
但这好像不管用我该怎么做?
thx
编辑1
或者,有没有一种方法,我可以传递一个数组,只包含我想要包含的属性?
3条答案
按热度按时间7lrncoxx1#
pluck(列名称)
这个方法被设计用来执行选择通过一个单一的列作为直接SQL查询返回数组与指定的列名的值的值具有相同的数据类型作为列。
示例如下:
请参阅http://api.rubyonrails.org/classes/ActiveRecord/Calculations.html#method-i-pluck
它引入了rails 3.2以上,只接受单列。在rails 4中,它接受多列
zkure5ic2#
Rails 2中
或者...
This reference doc为您提供了可以使用
.find
的完整选项列表,包括如何通过数字,id或任何其他任意列/约束进行限制。在Rails 3 w/ActiveRecord查询接口中
参考号:Active Record Query Interface
您还可以交换这些链式调用的顺序,执行
.select(...).where(...).first
-所有这些调用都是构造SQL查询,然后发送它。zbdgwd5y3#
我的回答是相当的,但这是你可以做的:
顺便说一句,这是Rails 4