如何使用find_by与多个"喜欢" conditon

时间:2016-05-19 10:33:38

标签: ruby-on-rails

我想找一个标题包括&#f; foo'或者' bar'。 为此我写了这样的话:

Post.find_by('title like ? or title like ?', '%foo%', '%bar%')

此代码工作正常,但它有点多余。 如果它完全匹配,我可以使用数组。与like条件有相似的方式吗?

1 个答案:

答案 0 :(得分:1)

当你将一个字符串传递给如上所述的AR查询时,('title like ? or title like ?', '%foo%', '%bar%')你基本上是在写一个SQL-ish查询。

话虽这么说,实现这一点的方法可能在于在SQL中使用similar to关键字。

这将简化查询,并删除重复使用title like ?

您的场景使用示例如下:

Post.find_by('title similar to ?', '%(foo|bar)%')

希望这有帮助。