2016-08-04 3 views
1

私はちょっと荒れ狂った検索フォームに固執しています。Ruby on rails。 Ransackの検索団体

私は、モデルの関連を検索し、戻ったときにname_contだけの結果を持参する必要がある場合に関連したモデルのstatus == something

私はrequestモデルとuserモデルとhas_manybelongs_to関係でgigモデルを持っています。 requestモデルの属性はstatusで、userモデルの属性は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_contrequests_status_eq, ("hired")


検索する方法を探しています、任意の助けをいただければ幸いです、ありがとう。

答えて

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

パーフェクト。どうもありがとうございました。 –

関連する問題