Rails复合WHERE子句 - 或者,不是和

时间:2012-12-04 06:39:42

标签: ruby-on-rails

我正在编写一个简单的搜索功能,可以使用搜索参数检查记录的多个字段是否相似。当我只比较一个字段时,它可以工作:

  key = params[:searchform][:keyword]
  fkey = '%' + key + '%'
  @games = Game.where('title LIKE ?', fkey).all

但是我想检查其他字段(例如“类别”和“规则”)以获得相似性,并返回与这些字段中的任何字段匹配的记录。我怎么能这样做?

1 个答案:

答案 0 :(得分:3)

假设这些字段属于Game类,您应该执行以下操作:

rules = params[:searchform][:rules]
@games = Game.where('title LIKE ? and rules = ?', fkey, rules).all

等等。