前提・実現したいこと
ユーザー検索機能を実装しています。検索欄にはユーザー名(:name
)、キーワード(:introducion
、自己紹介欄の中身)、性別(:sex
)があります。検索自体は上手く実装出来ています。
更に検索した後の検索欄にユーザーが入力した情報を残す為、以下のコードにて初期値を記述しました。
users/index.html.erb
<%= form_with url: users_path, method: :get, local: true do |f| %> <p>User name</p> <%= f.search_field :name, :value => params[:name] %> <p>Keyword</p> <%= f.search_field :introduction, :value => params[:introduction] %> <p>Gender</p> <%= f.radio_button :sex, "Male", :checked => true if params[:sex]&.include?("Male") %>Male <%= f.radio_button :sex, "Female", :checked => true if params[:sex]&.include?("Female") %>Female <%= f.submit :search, :class => "btn-square-little-rich" %> <% end %>
users_index.html.erb
def index if params[:name].present? || params[:introduction].present? || params[:sex].present? @users = User.where(['name LIKE ? AND introduction LIKE ? AND sex LIKE ?', "%#{params[:name]}%", "%#{params[:introduction]}%", "#{params[:sex]}%"]).page(params[:page]).per(20) else # ユーザーが何も入力しなかった場合。 @users = User.all.order(created_at: :desc).page(params[:page]).per(20) end if @users == [] # 該当のユーザーが存在しなかった場合。 @users = User.all.order(created_at: :desc).page(params[:page]).per(20) end end
ユーザー名、キーワードの部分は実装出来たのですが、性別のラジオボタンが上手く実装出来ません。
, :checked => true
以降を記述する前は「〇Male 〇Female」の様に表示されていたのですが、if文を付け足す事で「Male Female」の様にラジオボタンの表示自体が消えてしまいました。
試したこと
以下の様なキーワードで調べてみたのですが、中々情報に辿り着けず質問させて頂きました。
「form_with radio_button 引数」、「rails radio_button checked if」、「rails radio_button 初期値 if」
どなたかご助言を頂けますと有難いです。
補足情報(FW/ツールのバージョンなど)
ruby 2.6.4p104
RubyGems 3.0.3
Rails 5.2.3
回答1件
あなたの回答
tips
プレビュー