46

いくつかのラジオボタンを作成しようとしていますが、その方法がわかりません。この質問に続いて、私はそれがほぼ正しく機能するように設定しましたが、私はこれに不慣れであり、なぜそれを完全に理解できないのかわかりません。つまり、ブール値をグループ化するためのラベルを付けてから、[はい]と[いいえ]のラベルが付いたラジオボタンを設定します。ユーザーが[はい]のラベルをクリックした場合は、[はい]ラジオボタンを選択する必要があります(現在、ボタンをクリックすることしかできません)。自体)。これは私のコードです:

  <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>

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

4

2 に答える 2

85

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>
于 2013-02-25T05:13:02.513 に答える
1

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

<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, !!@object.autolyse %>
  <%= f.label :autolyse, "No", :value => "false" %>
  <%= f.radio_button :autolyse, false, !!@object.autolyse %>
</div>
于 2018-05-24T19:02:07.187 に答える