您好 如何从数据库调用返回数组。
采用以下格式:["141", "138", "123", "128", "137", "139"]
答案 0 :(得分:70)
在Rails 4中:( ht @ri4a)
User.ids # integer array
User.ids.map(&:to_s) # string array
在Rails 3/4中:
User.pluck(:id) # integer array
User.pluck(:id).map(&:to_s) # string array
如果你想直接进入DB:
> 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)
第一种方法比第二种方法更快,因为它不会产生构建模型实例的成本。
答案 1 :(得分:16)
如果您有has_many
,那么在has_many
方面,您可以获取相关对象的ID,如下所示:
def User
has_many :tasks
end
def Task
belongs_to :user
end
ids = User.find(1).task_ids
答案 2 :(得分:6)
怎么样:
ClassName.all.collect { |obj| obj.id }
答案 3 :(得分:3)
如果使用Model,则有新方法 - pluck。 Comment.pluck(:id)#[1,2,3 ...]