繁体   English   中英

从集合中获取所有ID

[英]Get all ids from a collection

我得到了这样的收藏品:

hotels = Hotel.where('selection = ?', 1).limit(4)

如何在没有循环的情况下获取此项目的所有ID? 我可以使用类似的东西:

hotels.ids ? 

谢谢

那么尝试hotels.map(&:id)hotels.map{|h| h.id } hotels.map{|h| h.id }

它们对Ruby来说意味着同样的东西,第一个通常更适合习惯的红宝石,而第二个更容易为初学者理解。

如果你只需要一个包含所有ID的数组,你应该使用pluck,因为它可以进行正确的查询,而且你不必使用任何ruby。 此外,它不必为从DB返回的每条记录实例化一个Hotel对象。 (方式更快)。

Hotel.where(selection: 1).pluck(:id)
# SELECT hotels.id FROM hotels WHERE hotels.selection = 1
# => [2, 3]

如果您使用Rails> 4,则可以使用ids方法:

Person.ids  # SELECT people.id from people

更多信息: http//apidock.com/rails/ActiveRecord/Calculations/ids

你也可以只拉出id。

hotels.select(:id).where(selection: 1)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM