ruby-on-rails - ActiveRecord 查找并仅返回选定的列

标签 ruby-on-rails ruby-on-rails-3 rails-activerecord

编辑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/

相关文章:

ruby-on-rails - CKEditor 不改变图像的大小

ruby-on-rails - Rails,是否应用范围取决于参数是否为nil

ajax - Rails 3.1 全选复选框

mysql - Rails Active Record 组或忽略查询中的重复结果

mysql - 为什么在尝试在数据库名称中使用数字和下划线时出现 `ActiveRecord::NoDatabaseError: Unknown database` 错误?

html - Bootstrap Navbar 以非常奇怪的形式显示

ruby-on-rails - 独 Angular 兽 worker 超时

ruby-on-rails - 在 Rails 应用程序中编辑 YAML 文件

ruby-on-rails - 缓存 : [GET/] miss? dalli gem,memcached,rails 3.1,nginx, unicorn 生产环境

ruby - 为什么我在一个明显存在的对象上得到 "undefined method for nil:NilClass"?