Helperを使って簡単にView内にプルダウンを作成する方法を紹介します。
【Rails】Helperを使ってViewにプルダウンを作成する方法
Helperにプルダウンを作成するメソッドを追加します。
例としてユーザ情報を全取得してプルダウンに表示しています。ユーザIDが指定されている場合は選択状態にします。
・app\helpers\users_helper.rb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | module UsersHelper # # 全ユーザマスタプルダウン # # @param [String] name name属性 # # @param [String] class_name クラス名 # # @param [String] prompt メニューが選択されてない場合の文字 # # @param [String] selected_id 選択されているID(IDがある場合はselected) # # @return [String] プルダウンのhtml def create_all_users_pulldown(name, class_name, prompt = '選択してください', selected_id = '') users_select_tag '', '', selected_id, { prompt: prompt }, class: class_name end def users_select_tag(object, name, selected = nil, options = {}, html_options = {}) users = ::User.all select object, name, options_for_select(users.collect { |u| [u.name, u.id] }, selected: selected), options, html_options end end |
使用したいViewで先ほど作成したメソッド(create_users_pulldown)を呼び出します。
・app\views\users\_user_index.html.erb
1 2 3 4 5 6 7 | <label> <legend>ユーザ一覧</legend> <div> <%= create_users_pulldown :user_id, 'form_user_select', @params[:user_id], '選択してください' %> </div> </label> |
以上、Ruby on RailsでHelperを使ってViewにプルダウンを作成する方法でした。