如何在Rails中通过id以外的属性查找对象?

时间:2014-10-05 23:11:02

标签: ruby-on-rails find

我需要通过不是id的唯一标识符在我的数据库中找到多个模型。有没有办法在rails中执行此操作?基本上,我正在寻找类比:

Foo.find([1,2,3])

用于by_attribute帮助程序:

Foo.find_by_name(['me','you','him'])

我现在遇到的问题是find_by_name帮助器将LIMIT 1附加到它创建的查询中,因此我只返回一个对象而不是一个数组我正在寻找的物品。

谢谢!

2 个答案:

答案 0 :(得分:3)

使用rails 3.x:

Foo.find_all_by_name(['me','you','him']);

或使用rails 4.x

Foo.where(name: ['me','you','him'])

答案 1 :(得分:1)

像往常一样,我在写完Stack Overflow的问题时就想出来了。)

where支持值列表,并返回匹配的所有对象。因此,要按名称查找所有Foos

Foo.where(name: ['me','you','him'])