从匹配的记录中仅获取一组ID

时间:2014-10-26 01:46:34

标签: ruby-on-rails rails-activerecord

如何从语句User.where(some_criteria: true)中获取一组ID?

如果我User.where(some_criteria: true).select(:id),我会收到ActiveRecord::AssociationRelation个对象。

2 个答案:

答案 0 :(得分:2)

您可以使用pluck获取ID这样的数组:

User.where(some_criteria: true).pluck(:id)

答案 1 :(得分:0)

鉴于模型用户

我可以做以下事情:

@User.where(myCriteria:true).select(:id)  #Assume this gives me the following ids: [3, 9]
arrayR = [];
@User.each do |i|
  arrayR << i.id
end

puts arrayR  # Will return [3, 9] as an array object.

arrayR将拥有我的身份数组。

此简写版本也可以通过以下方式完成:

@user = User.all.pluck(:id)
puts @user.kind_of?(Array)  #returns true
puts @user #returns an array of my id's. Using the previous example, this returns [3,9]