Ruby on rails Rails:从一个查询中搜索多个表
如何在Ruby on rails Rails:从一个查询中搜索多个表,ruby-on-rails,search,Ruby On Rails,Search,如何在find或paginate方法中编写条件语句,以允许用户同时在Project和Project Category名称中搜索 现在我的代码看起来像这样 @projects = Project.paginate :per_page => 20, :page => params[:page], :conditions => ['name LIKE ?', "%#{params[:search]}%"] 所以我还有Category表和name字段。如何在此搜索查询中将这两个名称组
find
或paginate
方法中编写条件语句,以允许用户同时在Project
和Project Category
名称中搜索
现在我的代码看起来像这样
@projects = Project.paginate :per_page => 20, :page => params[:page], :conditions => ['name LIKE ?', "%#{params[:search]}%"]
所以我还有Category
表和name
字段。如何在此搜索查询中将这两个名称
组合在一起?我会:
@categories = Category.find :conditions => ["name like ?", "%#{params[:search]}%"]
连接@projects和@categories,然后将结果用作最终搜索结果列表。假设您的
项目模型有多个:类别
:
@projects=Project.paginate:per_page=>20,:page=>params[:page],:joins=>:categories,:conditions=>['projects.name LIKE?或categories.name LIKE?,“%#{params[:search]}%”,“%#{params[:search]}%”,:order=>'projects.id DESC
如果需要,请更改上面的:订单