前提・実現したいこと
rails でユーザーの検索フォームを作っています。ユーザーの出身都道府県をenumでdbに保存しています。
enum pref:{
"---":0,
北海道:1,青森県:2,といった感じです。
ransackを使うとenumで保存した情報が出てきません。
dbには正しく保存はされています。
他の検索はうまく行きます。
発生している問題・エラーメッセージ
何かを入力しても、すべてのユーザーを検索してしまいます。 User Load (0.4ms) SELECT DISTINCT "users".* FROM "users" LIMIT ? OFFSET ? [["LIMIT", 11], ["OFFSET", 0]] ↳ app/controllers/users_controller.rb:13:in `index' => [#<User:0x00007f9574ba0ea8
該当のソースコード
ruby
1<%= search_form_for @q do |f| %> 2 3 <div class="input-field form-group"> 4 <%= f.label :pref , "都道府県"%> 5 <%= f.select :pref, User.prefs.keys,{prompt: '選択してください'},class: 'form-group' %> 6 </div> 7 8 <%= f.submit "検索" ,class:"mx-4 btn btn-danger btn-lg "%> 9<% end %> 10 11 12def index 13 @q = User.ransack(params[:q]) 14 @users = @q.result(distinct: true).paginate(page: params[:page], per_page: 11) 15end
試したこと
enumとransackが対応していないらしいということは分かったのですが、未熟なもので調べ方がわかりませんでした。どなたか、ご教授お願いいたします。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
あなたの回答
tips
プレビュー