Ruby on rails 3.2 如何在rails中执行此查询以从一个表中获取两列搜索,从另一个表中获取一列搜索

Ruby on rails 3.2 如何在rails中执行此查询以从一个表中获取两列搜索,从另一个表中获取一列搜索,ruby-on-rails-3.2,where-clause,Ruby On Rails 3.2,Where Clause,我有以下协会: 类资源

我有以下协会:

类资源
 def self.search(search)
     where('title ILIKE ? OR description ILIKE ?', "%#{search}%","%#{search}%")
 end
我需要搜索作者姓名,如下所示:

 where('title ILIKE ? OR description ILIKE ? OR author_name ILIKE ?', "%#{search}%","%#{search}%","%#{search}%" )
结束

这显然不起作用,因为我在资源表中有author_id,而不是author name字段

我是个笨蛋,任何帮助都很感激


谢谢

您可以使用joins方法加入authors表。见下例:

def self.search(search)
 joins(:author).where('title ILIKE ? OR description ILIKE ? OR authors.name ILIKE ?', "%#{search}%","%#{search}%","%#{search}%")
end