Rails3.2を使用しています。その下にラジオボタンがある検索フォームがあります。選択されているラジオボタンに基づいて検索します。現在、私はこれを私の見解に持っています:
= radio_button_tag(:ad_type, "free")
= label_tag(:ad_type_free, "free")
= radio_button_tag(:ad_type, "paid")
= label_tag(:ad_type_paid, "paid")
= radio_button_tag(:ad_type, "featured")
= label_tag(:ad_type_featured, "featured")
だから私の質問はこれです、どうすればデフォルトのラジオボタンを選択するように設定できますか?を使用してみradio_button_tag(:ad_type, "free", :checked => true)
ましたが、フォームを送信すると、常にそのラジオボタンが選択されます。私が欲しいのは、前のリクエストに基づいて値を選択することです。URLパラメータから値を取得する必要がありますか?もしそうなら、どうすれば初期のデフォルト値を設定できますか(以前の検索がない場合)?どうもありがとう。
アップデート
ヘルパーメソッドad_type_selectedを作成しましたか?
def ad_type_selected?(ad_type)
selected_ad_type = params[:ad_type] || "free"
(selected_ad_type == ad_type) ? true : false
end
そして、私はこれを私の見解に持っています:
= radio_button_tag(:ad_type, "free", :checked => ad_type_selected?("free"))
ただし、ラジオボタンはまだ選択されていません。ログを確認すると、ヘルパーへの最初の呼び出しがtrueを返し、他の呼び出しはfalseを返すことがわかります。これは、私が望んでいることです。しかし、問題はそれでもラジオボタンが選択されないことです。inputタグをチェックすると、checked属性が「checked」に設定されていることがわかります。