ransackを使って検索機能を作成したい
ransackという検索系のgemを使って検索フォームを実装したのだが、
以下のラジオボタンでの検索を実装したかった。
例
・0円
・1000円以下
・5000円以下
・10000以上
このような条件でradioボタンでの検索をしたい。
コード
controller
class PriceController < ApplicationController def index @search = Price.ransack(params[:q]) @result = @search.result(distinct: true) end
slim
= search_form_for @search, url: search_index_path do |f| div = f.radio_button :price_eq, "", checked: true | 0円 div = f.radio_button :price_eq, "" | 1000円以下 div = f.radio_button :price_eq, "" | 5000円以下 div = f.radio_button :price_eq, "" | 10000円以上
このコードでエラーなく表示まではできる。
が、これだと検索が効かない
slim
= search_form_for @search, url: search_index_path do |f| div = f.radio_button :price_eq, 0, checked: true | 0円 div = f.radio_button :price_lteq, 1000 | 1000円以下 div = f.radio_button :price_lteq, 5000 | 5000円以下 div = f.radio_button :price_gteq, 10000 | 10000円以上
こうすればそれぞれの条件にあった書き方ができてるので
検索も効く。
と思ったのですが、
:price_eq,:price_lteq,:price_gteqと全て違うものを設定しているため
この値がradioボタンのname属性に付与されているせいで
それぞれのradioボタンが同じグループと認識されない。
そのため以下のように複数選択される形になってしまう。
どうすればこの条件を変えずにできますでしょうか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2018/11/16 06:54