从集合中获取记录

时间:2019-01-23 15:27:51

标签: ruby-on-rails ruby rails-activerecord

我想从user_5集合中获取users(ID为5的用户)。

users = User.all
user_5 = ???

我知道我可以使用user = User.find(5)来获取它,但是我不想再次查询。

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

您可以使用#find

users = User.all
user_5 = users.find { |user| user.id == 5 }

答案 1 :(得分:1)

通话

users = User.all

不执行查询。当您尝试迭代find方法中的集合时,将执行查询。调用它可能会更快

users.find(5)

比在内存find中使用,因为它将从数据库中获取所有记录并对其进行遍历:

users.find { |user| user.id == 5 }

users.find实际上也可以称为AR find而不是Enumerable#find,因此about示例可能不会返回任何内容,使用#detect

更安全