私はランサックを使用しており、ステージ (ドラフト、編集、完了など) と多対多の関係を持つ会場モデルがあります。
これが私のフォームです
= search_form_for @q, url: search_admin_venues_path, html: {method: :post} do |f|
= f.label :name_cont
= f.text_field :name_cont
= f.select :stages_id_eq, Stage.all.collect{|c| [c.name, c.id]}, {include_blank: true}
選択したステージに含まれていない会場を検索する方法はありますか? すなわち:どういうわけかそれらを拒否しますか?
これが私が使用するランサック検索です
def search
@q = Venue.search(params[:q])
@venues = @q.result(distinct: true)
render :index
end
これが私がやっていたことです:
stage_obj = Stage.find_by_name(params[:stage])
@venues = Venue.all.includes(:stages).reject{|v| v.stages.include?(stage_obj)}