足場テントを備えた最も単純なレールアプリがあります
ここに私のコントローラー#インデックス
def index
@tents = Tent
@tents = @tents.where(:brand => params[:brand]) if params[:brand]
@tents = @tents.where(:season => params[:season]) if params[:season]
end
scaffold によって生成された標準も表示
ここで検索魔女はデータをフィルタリングする必要があります
= form_tag tents_path, method: :get do
= label_tag "manufacturer"
= select_tag :brand, options_for_select(...), include_blank: true
= label_tag "seasons"
- Tent.pluck(:season).each do |season|
=check_box_tag 'season', season
=h season
= submit_tag 'Submit'
問題 1:
送信元で、パラメーターが選択されていない (select または checl_boxes) 場合、このパラメーターを送信したくありませんが、空の状態で送信されます
GET /tents?utf8=...&brand=&season=&commit=Submit
問題 2:
複数のチェックボックスをチェックすると、get リクエストは次のようになります
GET /tents?utf8=...&brand=Brand
&シーズン=4&シーズン=3&commit=Submit
この後、両方の値に対してデータが選択されると予想されますが、コントローラーは両方の値がフィールドにあると予想し、ゼロの結果を返します
何か提案はありますか?
アップデート
おそらく私の質問はrailscasts-111(高度な検索フォーム)で解決されました