编辑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
但这似乎不起作用。我该如何让它发挥作用?
谢谢
编辑 1
或者,有没有一种方法可以传递仅包含我想要包含的属性的数组?
最佳答案
pluck(column_name)
此方法旨在执行单列选择,作为直接 SQL 查询返回具有指定列名值的数组。值与列具有相同的数据类型。
示例:
Person.pluck(:id) # SELECT people.id FROM people
Person.uniq.pluck(:role) # SELECT DISTINCT role FROM people
Person.where(:confirmed => true).limit(5).pluck(:id)
参见http://api.rubyonrails.org/classes/ActiveRecord/Calculations.html#method-i-pluck
它引入了 Rails 3.2 及以上版本,并且仅接受单列。在 Rails 4 中,它接受多列
关于ruby-on-rails - ActiveRecord 查找并仅返回选定的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7911014/