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>

第一个标签用于组,它将组标记为“Autolyse”。然后我想要一个“是”的标签,如果选择它将设置为真,然后显然下一个是假的。如何正确设置此设置?

4

2 回答 2

85

标签(object_name,方法,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 回答