我有一个id列表,我可以将这个列表存储在任何数据类型中,因为我将自己构建id。
如何获取此ID列表中的所有用户?我希望这个尽可能快。
我正在使用mysql。
一旦我检索到这个列表,我想把User对象放到一个哈希中,这样我就可以根据id来引用它们了:
user_hash[234]
将返回用户名为234的哈希值。
答案 0 :(得分:3)
user_hash = {}
User.where(:id => [1,2,3,4]).each do |user|
user_hash[user.id] = user
end
答案 1 :(得分:0)
您可以使用ID数组选择行,如下所示:
ids = [1, 2, 3, 4]
users = User.find(ids)
这将返回User
条记录的数组。如果你想将它映射到一个哈希,这样你可以按照你所描述的ID访问,这样的东西就可以了:
ids = [1, 2, 3, 4]
users = {}
User.find(ids).each do |user|
users[user.id] = user
end
users[3] # => #<User id: 3, ...