検索用のパラメーターを扱うためのformオブジェクトをActiveModel::Modelを継承して作っているのですが、link_toに付与するURLにこのformオブジェクトの値をパラメーターして付与しようとしてもうまくいきません。
ruby
1# app/services/search_job_service.rb 2class SearchJobService 3 attr_accessor :word, :area_ids, :category_ids 4 5 def search 6 # attributeに対応したJobを返すメソッド 7 end 8end 9 10# app/controllers/jobs_controller.rb 11class JobsController < ApplicationController 12 before_action :set_job, only: :show 13 before_action :set_form, only: [:index, :search_by_areas] 14 15 def index 16 @jobs = @form.search 17 end 18 19 def show 20 end 21 22 def search_by_areas 23 @areas = Area.all 24 end 25 26 private 27 def set_job 28 @job = Job.find(params[:id]) 29 end 30 31 def set_form 32 @form = SearchJobService.new(search_job_params) 33 end 34 35 def search_job_params 36 params[:search_job_service].blank? ? {} : params.require(:search_job_service).permit(:word, area_ids: [], category_ids: []) 37end
これに対して、例えばJobs#indexのページで、formの条件を保持したまま検索ページに戻るリンクを作る際に、
slim
1= link_to 'エリアを選び直す', search_by_areas_path(@form)
のようにformオブジェクトの値をパラメーターとして渡したいのですが、うまくいきません。
どなたか解決法わかりますでしょうか...?どうぞよろしくお願いいたします。
あなたの回答
tips
プレビュー