Ruby on rails。 Ransack搜索关联

时间:2016-08-04 15:56:35

标签: ruby-on-rails associations ransack

我的搜索表单有点困难。

我需要搜索模型的关联,并在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_contrequests_status_eq, ("hired")

的方法

我不知道该怎么做,任何帮助都会受到赞赏,谢谢。

1 个答案:

答案 0 :(得分:3)

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