Rails - 如何搜索多个表

时间:2015-04-22 19:00:34

标签: mysql ruby-on-rails-4.1

我正在尝试实现搜索功能以跨越多个表。现在我只对数据库中的每个表都有搜索功能。

作为一个例子,我希望能够从多个表中搜索所有与该标题相对应的“标题”。此示例中的两个表是“行为”和“附件”。

现在我有:

作用:

控制器

 def index
   if params[:search]
     @acts = Act.search(params[:search]).order('title DESC')
   else
     @acts = Act.all.order('title DESC')
   end
 end

模型

class Act < ActiveRecord::Base

  def self.search(query)
    where("title like ?", "%#{query}%")
  end
end

附件:

型号:

class Attachment < ActiveRecord::Base
  def self.search(query)
    where("title like ?", "%#{query}%")
  end
end

控制器:

def index
  if params[:search]
    @attachments = Attachment.search(params[:search]).order('title DESC')
  else
    @attachments = Attachment.all.order('title DESC')
  end
end

非常感谢任何帮助。我是RoR的新手,我正在尝试以正确的方式实现这一点。

谢谢。

0 个答案:

没有答案