如何根据id列表加载用户?

时间:2011-04-10 23:00:01

标签: ruby-on-rails

我有一个id列表,我可以将这个列表存储在任何数据类型中,因为我将自己构建id。

如何获取此ID列表中的所有用户?我希望这个尽可能快。

我正在使用mysql。

一旦我检索到这个列表,我想把User对象放到一个哈希中,这样我就可以根据id来引用它们了:

user_hash[234]

将返回用户名为234的哈希值。

2 个答案:

答案 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, ...