Har*_*tty 71
在Rails 4中:(ht @ ri4a)
User.ids # integer array
User.ids.map(&:to_s) # string array
Run Code Online (Sandbox Code Playgroud)
在Rails 3/4中:
User.pluck(:id) # integer array
User.pluck(:id).map(&:to_s) # string array
Run Code Online (Sandbox Code Playgroud)
如果你想直接进入DB:
> ActiveRecord::Base.connection.select_values("select id from users")
["1", "2", "5", "6", "7", "8", "3", "10", "11", "9"]
Run Code Online (Sandbox Code Playgroud)
如果您已经有型号:
User.all(:select => :id).collect(&:id)
Run Code Online (Sandbox Code Playgroud)
第一种方法比第二种方法更快,因为它不会产生构建模型实例的成本.
Zab*_*bba 16
如果您有has_many
,那么在has_many
侧面您可以获取相关对象的ID,如下所示:
def User
has_many :tasks
end
def Task
belongs_to :user
end
ids = User.find(1).task_ids
Run Code Online (Sandbox Code Playgroud)
怎么样:
ClassName.all.collect { |obj| obj.id }
Run Code Online (Sandbox Code Playgroud)