Ruby on rails 返回ID数组
嗨 如何从数据库调用返回数组 用这种格式:Ruby on rails 返回ID数组,ruby-on-rails,Ruby On Rails,嗨 如何从数据库调用返回数组 用这种格式:[“141”、“138”、“123”、“128”、“137”、“139”]怎么样: ClassName.all.collect { |obj| obj.id } 如果您有一个has_many,那么在has_many侧,您可以获得相关对象的ID,如下所示: def User has_many :tasks end def Task belongs_to :user end ids = User.find(1).task_ids 在轨道4中:
[“141”、“138”、“123”、“128”、“137”、“139”]
怎么样:
ClassName.all.collect { |obj| obj.id }
如果您有一个
has_many
,那么在has_many
侧,您可以获得相关对象的ID,如下所示:
def User
has_many :tasks
end
def Task
belongs_to :user
end
ids = User.find(1).task_ids
在轨道4中:(ht)
在Rails 3/4中:
User.pluck(:id) # integer array
User.pluck(:id).map(&:to_s) # string array
旧答案
如果要直接转到数据库:
> ActiveRecord::Base.connection.select_values("select id from users")
["1", "2", "5", "6", "7", "8", "3", "10", "11", "9"]
如果您已经有一个模型:
User.all(:select => :id).collect(&:id)
第一种方法比第二种方法快,因为它不会产生构建模型实例的成本。如果您使用模型,则有一种新方法-Pull。评论。弹拨(:id)#[1,2,3…]这给了我[141,138,123,128,137,139]我需要这样的数字周围的“,[“141”,“138”,“123”,“128”,“137”,“139”]试着用
收集(&:id)
替换收集{u | u.id.}
这实际上是一个评论,不是问题的答案。请使用“添加评论”为作者留下反馈。不,这是一个答案,与公认的答案非常相似。我不知道是什么让你觉得这是一个评论。应该是:ClassName.pulk(:id)
或ClassName.all.collect(&:id)
我同意@Justin。几年后回首往事,我的答案是n00b,可能不配获得3票:)
User.all(:select => :id).collect(&:id)