前提・実現したいこと
今回ransackを用いて商品検索の検索フォームを作成しているのですが
今回active hashで検索フォームを作っています
shadow_serch.html.erbの記述の中で
include_blank: '指定なし'と現在してますが
このinclude_blankする箇所をcategory.rbの { id: 1, name: '--' }の部分に適用したいのですがどうしてもできません
ちなみにcategory.rbの中身は変えることができません
変えずに行いたいです
該当のソースコード
shadow_serch.html.erb
Rails
1 2<h1>商品検索</h1> 3<%= search_form_for @p, url: items_search_path do |f| %> 4 <%= f.label :category_id_eq, 'カテゴリー' %> 5 <%= f.collection_select :category_id_eq, Category.all, :id, :name, include_blank: '指定なし' %> 6 <br> 7 <%= f.label :status_id_eq, '商品の状態' %> 8 <%= f.collection_select :status_id_eq, Status.all, :id, :name, include_blank: '指定なし' %> 9 <br> 10 <%= f.label :delivery_burden_id_eq, '配送料の負担' %> 11 <%= f.collection_select :delivery_burden_id_eq, DeliveryBurden.all, :id, :name, include_blank: '指定なし' %> 12 <br> 13 <%= f.label :arrival_day_eq, '発送までの日数' %> 14 <%= f.collection_select :arrival_day_id_eq, ArrivalDay.all, :id, :name, include_blank: '指定なし' %> 15 <br> 16 <%= f.submit '検索' %> 17<% end %>
category.rb
Rails
1class Category < ActiveHash::Base 2 self.data = [ 3 { id: 1, name: '--' }, 4 { id: 2, name: 'レディース' }, 5 { id: 3, name: 'メンズ' }, 6 { id: 4, name: 'ベビー・キッズ' }, 7 { id: 5, name: 'インテリア・住まい・小物' }, 8 { id: 6, name: '本・音楽・ゲーム' }, 9 { id: 7, name: 'おもちゃ・ホビー・グッズ' }, 10 { id: 8, name: '家電・スマホ・カメラ' }, 11 { id: 9, name: 'スポーツ・レジャー' }, 12 { id: 10, name: 'ハンドメイド' }, 13 { id: 11, name: 'その他' } 14 ] 15end
試したこと
f.collection_selectの第二引数である
Category.allを.allではなく.findで一列目以外を持ってくればと考えましたがエラーが出てしまい
include_blank: 変数名.categry.name
などいろいろ試してみましたがどうしてもたどり着けませんでした
まだまだ勉学が浅くご教授いただけますと幸いにございます
補足情報(FW/ツールのバージョンなど)
rubyバージョン 6.0.0
回答1件
あなたの回答
tips
プレビュー