[英]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.