ruby-on-rails – 用Ransack一次搜索多个模型

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – 用Ransack一次搜索多个模型前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我的应用程序标题中有一个搜索表单,我想使用这个搜索表单来搜索应用程序中的多个模型.

例如像/ search?q = rails这样的请求可以通过Work,Project,User及其定义的属性等多个模型来触发搜索.我想使用Ransack,因为我已经在应用程序的不同区域使用了Work模型.

我想我不太明白Ransack,而且文档总是指出你必须定义@q = MyModel.search(params [:q]),以@@的形式使用它.有没有一种方法可以提前定义一个特定的模型?并传入参数名称,如search_form_for:q?

解决方法

好的,在提出问题后,答案突然出现在我的脑海里.

而不是search_form_for帮助器,我现在只需要使用form_tag帮助器,方法如下:

<%= form_tag search_path,method: :get do %>
  <%= text_field_tag :q,nil %>
<%= end %>

搜索动作中我只是做:

q = params[:q]
@works    = Work.search(name_cont: q).result
@projects = Project.search(name_cont: q).result
@users    = User.search(name_cont: q).result

这对我有用我希望这也能帮助别人.

原文链接:https://www.f2er.com/ruby/271954.html

猜你在找的Ruby相关文章