web-dev-qa-db-ja.com

レールでラジオボタンを正しく使用する方法は?

私はいくつかのラジオボタンを作成しようとしていますが、どうすればいいのかわかりません。 this の質問に続いて、ほぼ正しく動作するように設定しましたが、これは初めてであり、なぜ完全に理解できないのかわかりません。だから私がやっていることは、ブール値をグループ化するラベルを付けてから、はいといいえというラベルのラジオボタンがあります。ユーザーがはいのラベルをクリックした場合、ラジオボタンはい自体)。これは次のような私のコードです:

  <div class="field">
    <%= f.label :autolyse %><br />
    <%= f.label :autolyse, "Yes", :value => "Yes"  %>
    <%= f.radio_button :autolyse, true%>
    <%= f.label :autolyse, "No", :value => "No" %>
    <%= f.radio_button :autolyse, false, :checked => true %>
  </div>

最初のラベルはグループ用であり、グループに「Autolyse」というラベルを付けます。次に、「はい」のラベルが必要です。これを選択するとtrueに設定され、次のラベルは明らかにfalseになります。これを正しく設定するにはどうすればよいですか?

34
GiH

label(object_name、method、content_or_options = nil、options = nil、&block) を参照してください

  <div class="field">
    <%= f.label :autolyse %><br />
    <%= f.label :autolyse, "Yes", :value => "true"  %>
    <%= f.radio_button :autolyse, true %>
    <%= f.label :autolyse, "No", :value => "false" %>
    <%= f.radio_button :autolyse, false, :checked => true %>
  </div>
70
shweta

ユーザーが選択したオプションを選択したままにする場合は、パラメーターを検証する必要があります。次のようになります。

<div class="field">
  <%= f.label :autolyse %><br />
  <%= f.label :autolyse, "Yes", :value => "true"  %>
  <%= f.radio_button :autolyse, true, !!params[:autolyse] %>
  <%= f.label :autolyse, "No", :value => "false" %>
  <%= f.radio_button :autolyse, false, !!params[:autolyse] %>
</div>

オブジェクトプロパティから実行する場合は、オブジェクトプロパティのparams変数を置き換えるだけです。

<div class="field">
  <%= f.label :autolyse %><br />
  <%= f.label :autolyse, "Yes", :value => "true"  %>
  <%= f.radio_button :autolyse, true, [email protected] %>
  <%= f.label :autolyse, "No", :value => "false" %>
  <%= f.radio_button :autolyse, false, [email protected] %>
</div>
0
Carlos Castillo