使用ActiveRecord使用OR子句进行查询的"Rails方式"是什么?

Ram*_*ses 1 ruby mysql activerecord ruby-on-rails ruby-on-rails-3.2

我正在使用Rails 3和MySQL数据库,我需要以编程方式创建这样的查询:

select * from table where category_name like '%category_name_1%' 
OR category_name like '%category_name_2%'
(...snip...)
OR category_name like '%category_name_n%'
Run Code Online (Sandbox Code Playgroud)

鉴于表格大小和项目范围(我认为最多500行),我觉得使用像思考sphinx这样的东西会有点过分.我知道我可以通过直接编写查询字符串来完成此操作,但想知道是否有ActiveRecord方法来执行此操作.在官方指南中没有提到这一点,我现在谷歌搜索了很长一段时间,只是空手而归:(

另外,有没有理由(可能是Rails的原因?)不包含OR子句?

谢谢!

Har*_*tty 7

假设您有一个names包含类别名称的数组:

Model.where( names.map{"category_name LIKE ?"}.join(" OR "),
  *names.map{|n| "%#{n}%" } )
Run Code Online (Sandbox Code Playgroud)