轨道上的红宝石。Ransack 搜索关联

Rob*_*hes 3 ruby-on-rails associations ransack

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

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

我有一个gig模型与模型和模型的has_many belongs_to关系。该模型具有属性和模型的属性。我想搜索并只显示具有.requestuserrequeststatususerpublicnamepublicname_contstatus == "hired"

目前,我的搜索带回了publicname无论 还是request模型的结果status


演出控制器:

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

搜索表格:

<%= 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 %>
Run Code Online (Sandbox Code Playgroud)

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


我不知道如何解决这个问题,任何帮助将不胜感激,谢谢。

Aer*_*ert 8

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