我的搜索表单有点困难。
我需要搜索模型的关联,并在name_cont
时返回结果但仅在关联模型的status == something
时。
我的gig
模型与has_many
模型和belongs_to
模型之间存在request
user
关系。 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_cont
和requests_status_eq, ("hired")
我不知道该怎么做,任何帮助都会受到赞赏,谢谢。
答案 0 :(得分:3)
@q = Gig.joins(:requests).where(requests: { status: 'hired' }).ransack(params[:q])