0

次を使用して、レールでラジオボタンを作成しようとしています:

<%= f.radio_button :category_id, "1" %>

問題は、デフォルトでチェックされていることであり、最初に明示的にクリックせずにユーザーがフォームを送信できないようにしたくない (基本的に、ページの読み込み時にチェックを外したい)

問題は、エラーが発生し、ページがリロードされた場合です。エラーが発生する:checked => false前にユーザーが入力した内容を上書きしているように見える場合、もう一度クリックする必要があります。

ありがとう!

4

2 に答える 2

0

FormBuilderヘルパー(ブロック引数oh aでinputメソッドを呼び出すたびに使用しますform_for)は、対応する属性の現在の値を常に反映します。それで:

<%= form_for @post do |f| %>
  <%= f.radio_button :category_id, "1" %>

…次の場合にのみチェックされます@post.category_id == "1"

ビューをレンダリングする前に、モデルの状態が正しいことを確認する必要があるようです。

于 2012-08-01T07:58:09.430 に答える
-1

チェックされたボタンの状態を関連させたい場合は、何らかの方法でそれを保存し、その情報をビューに戻す必要があります。手動で行うか、apidock で説明されているように radio_button に処理させることができます

# Let's say that @post.category returns "rails":
radio_button("post", "category", "rails")
radio_button("post", "category", "java")
# => <input type="radio" id="post_category_rails" name="post[category]" value="rails" checked="checked" />
#    <input type="radio" id="post_category_java" name="post[category]" value="java" />
于 2012-08-01T06:34:36.303 に答える