Ruby 在 rails。搜查协会

Ruby on rails. Ransack search associations

我对搜查搜索表单有点卡住了。

我需要搜索模型的关联,并在 name_cont 时返回结果,但仅当关联模型的 status == something.

我有一个 gig 模型与 has_many belongs_to 关系与 request 模型和 user 模型。 request 模型具有属性 statususer 模型具有属性 publicname。我想搜索 publicname_cont 并且只显示具有 status == "hired".

的请求的结果

目前我的搜索返回 publicname 的结果,无论 request 型号 status


演出控制器:

@gigs = @q.result(distinct: false).notexpired.order(date: :asc).page(params[:page]).per(20)

搜索表单:

<%= search_form_for @q, url: welcome_index_url, remote: false do |f| %>

      <%= text_field_tag :search, params[:search], class: 'loc-search', placeholder: "Location"%>
      <%= f.search_field :locationname_cont, placeholder: "Bar name" %>
      <%= f.search_field :requests_user_publicname_cont, placeholder: "Band name" %>
      <%= f.submit %>
 <% end %>

目前,我可以搜索 requests_user_publicname_cont,它会按预期为我提供参数匹配的所有结果。 我正在寻找一种方法来搜索 requests_user_publicname_cont AND requests_status_eq, ("hired")


我不知道该怎么做,如有任何帮助,我们将不胜感激。

@q = Gig.joins(:requests).where(requests: { status: 'hired' }).ransack(params[:q])