ransackでの検索で、複数選択可のチェックボックスでの検索を実装したいです。
以下のStatusモデルがあり、UserモデルはStatusモデルと1対1の関連となっています。
Ruby
1 2class User < ActiveRecord::Base` 3 has_one :status 4end 5 6class Status < ActiveRecord::Base 7 FLAG_FIELDS = [:a, :b, :c, :d, :e, :f] 8 belongs_to :user 9end
Statusモデルのカラムは以下のようにboolean型のデータを持ち、:a〜:fまでの状態がtrueかどうかを判定しています。
Ruby
1class CreateStatus < ActiveRecord::Migration 2 def change 3 create_table :status do |t| 4 t.integer :user_id 5 t.boolean :a ,default: true 6 t.boolean :b ,default: false 7 t.boolean :c ,default: false 8 t.boolean :d ,default: false 9 t.boolean :e ,default: false 10 t.boolean :f ,default: false 11 end 12 end 13end
この状態で、Userの検索画面において、User.statusの各カラムがtrueかどうかで、チェックボックスで検索を行いたいです。
Ruby
1検索画面 2<%= search_form_for @q do |f| %> 3 <%= f.label :status_true , "状態" %> 4 <%= f.check_box :status_a_true,{multiple: true},nil %>状態A 5 <%= f.check_box :status_b_true,{multiple: true},nil %>状態B 6 <%= f.check_box :status_c_true,{multiple: true},nil %>状態C 7 <%= f.check_box :status_d_true,{multiple: true},nil %>状態D 8 <%= f.check_box :status_e_true,{multiple: true},nil %>状態E 9 <%= f.check_box :status_f_true,{multiple: true},nil %>状態F 10 11--省略-- 12 13 <%= f.submit %> 14<% end %>
このようなビューで、表示自体はエラー無くできていますが、実際に値が取り出せていないようで、検索が行われません。
チェックした状態全てがtrueを持つUserのみを検索結果に表示したいのですが、どのように実装すればよろしいでしょうか。
ご回答よろしくお願いいたします。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。