簡體   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