使用变量AND或OR构建ActiveRecord查找程序的最佳方法是什么?

时间:2011-02-08 16:12:47

标签: activerecord

使用Rails3,我需要构建一个查找器,它包含动态确定的不同数量的比较,使用AND或OR语句相对于相关has_many关联中的值,再次使用和或或动态确定

所以,让我说我有foo,有一个has_many到bar,bar有一个属性baz,我想找到所有有相关bar的foos,其中baz = some_value或another_value等,以及数字比较的事先不知道。我知道我可以这样做:

Foo.joins(:bars).where(:bars => {:baz=>"Find Me"})

或使用字符串:

Foo.joins(:bars).where("bars.baz = ?", a_value)

似乎获得我想要的最好方法是动态构造用作第二个示例的第一个参数的字符串。真的吗?我没有看到任何允许我提供额外连接的内容......在那里我可以指定一个和或或同样。如果可以,那么迭代我的可能匹配数组和每个值的语句将是一个简单的问题,但我很确定这是不可能的,我最好的选择是动态字符串作为第二个示例中的第一个参数。此外,我知道我可以做一个IN,但这只适用于OR,而不是为了谢谢。

0 个答案:

没有答案