一次有多个ActiveRecord查询?

时间:2014-01-02 08:43:57

标签: ruby-on-rails ruby activerecord

这是我控制器中的动作。它目前所做的是显示其中包含“abyss”一词拼写最少的所有指南。我想做的是显示所有指南,其中包含任何拼写为“深渊”的拼写或任何拼写为“cat”的拼写。

我尝试了各种'%cat%'组合,但找不到合适的位置。

我如何使这项工作?

 def abyss
    t = Guide.arel_table
    @guides = Guide.where(t[:title].matches('%abyss%'))
  end

2 个答案:

答案 0 :(得分:1)

尝试使用or,如下所示:

def abyss
  t = Guide.arel_table
  @guides = Guide.where(t[:title].matches('%abyss%').or(t[:title].matches('%cat%')))
end

答案 1 :(得分:0)

您可以使用find_by_sql来简化此类查询:

def abyss
  @guides = Guide.find_by_sql(["select * from guides where title LIKE ? OR title LIKE ?", '%abyss%', '%cat%'])
end