很抱歉,如果这是一个新手问题,搜索谷歌和SO什么都没有,我可能没有使用正确的条款,但这里去....
如果我有一个带有名字的用户模型,我想找一个'john',我知道我可以做到
User.find_by_name 'john'.
大
但是假设我有一个我想要检索的名称列表。我可以为列表中的每个名称执行find_by - 导致多个sql查询。或者我可以做User.all并根据我的列表过滤内存中的结果。
两者看起来都非常昂贵且不具备扩展性,当我在原始sql中写道:
select * from users where name in ('john', 'peter', 'susan', ... );
在一个查询中获得全部内容。
我是否错过了一个技巧或活动记录也可以这样做?如果没有,那么在rails 3应用程序中建议的最佳方法是什么?
答案 0 :(得分:2)
试试这个
names = ['John', 'Mary']
users = User.where(name: names)
答案 1 :(得分:0)
User.find_all_by_name(names)
也有效,虽然它现在可能被认为是旧学校。