如何在导轨中正确使用单选按钮?

时间:2013-02-25 04:44:24

标签: ruby-on-rails radio-button boolean

我正在尝试创建一些单选按钮,我不知道该怎么做。在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”。然后我想要一个标签为“是”,如果选择将设置为真,然后显然下一个为假。如何正确设置?

2 个答案:

答案 0 :(得分:69)

请参阅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>

答案 1 :(得分:0)

如果你想保持选择用户选择的选项,你应该验证参数,如下所示:

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