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