Seb*_*ien 10 ruby ruby-on-rails
我得到了这样的收藏品:
hotels = Hotel.where('selection = ?', 1).limit(4)
Run Code Online (Sandbox Code Playgroud)
如何在没有循环的情况下获取此项目的所有ID?我可以使用类似的东西:
hotels.ids ?
Run Code Online (Sandbox Code Playgroud)
谢谢
Rom*_*ain 22
尝试hotels.map(&:id)或hotels.map{|h| h.id }?
它们对Ruby来说意味着同样的东西,第一个通常更适合习惯的红宝石,而第二个更容易为初学者理解.
esb*_*ngo 19
如果你只需要一个包含所有ID的数组,你应该使用pluck,因为它可以进行正确的查询,而且你不必使用任何ruby.此外,它不必为从DB返回的每条记录实例化一个Hotel对象.(方式更快).
Hotel.where(selection: 1).pluck(:id)
# SELECT hotels.id FROM hotels WHERE hotels.selection = 1
# => [2, 3]
Run Code Online (Sandbox Code Playgroud)
riz*_*oro 14
如果您使用Rails> 4,则可以使用以下ids方法:
Person.ids # SELECT people.id from people
Run Code Online (Sandbox Code Playgroud)
更多信息:http://apidock.com/rails/ActiveRecord/Calculations/ids
| 归档时间: |
|
| 查看次数: |
16184 次 |
| 最近记录: |