我希望用户为一个型号中的三个选择一个选项。
即。我有一个模型视频,可以评为正/负/未知
目前我有三列布尔值(pos / neg / unknown)。
这是处理这种情况的最佳方法吗?
这个表格应该是什么样的?
目前我有类似
的东西<%= radio_button_tag :positive, @word.positive, false %>
<%= label_tag :positive, 'Positive' %>
<%= radio_button_tag :negative, @word.negative, false %>
<%= label_tag :negative, 'Positive' %>
<%= radio_button_tag :unknown, @word.unknown, false %>
<%= label_tag :unknown, 'Positive' %>
但显然它允许多个选择,而我试图将其限制为只有一个..
怎么办?
答案 0 :(得分:9)
如果使用字符串列,请说rating
。
然后以你的形式:
# ...
<%= f.radio_button :rating, 'unknown', checked: true %>
<%= f.radio_button :rating, 'positive' %>
<%= f.radio_button :rating, 'negative' %>
# ...
只允许一次选择
编辑完全相同但使用radio_button_tag:
<%= radio_button_tag 'rating', 'unknown', true %>
<%= radio_button_tag 'rating', 'positive' %>
<%= radio_button_tag 'rating', 'negative' %>
答案 1 :(得分:1)
我认为你需要这样的事情:
<%= radio_button_tag :rating, 'positive', @word.rating == :positive %>
<%= label_tag :positive, 'Positive' %>
<%= radio_button_tag :rating, 'negative', @word.rating == :negative %>
<%= label_tag :negative, 'Positive' %>
<%= radio_button_tag :rating, 'unknown', @word.rating == :unknown %>
<%= label_tag :unknown, 'Positive' %>
此处所有单选按钮都具有相同的name
属性(即'rating'
),但分别具有不同的value
属性('positive', 'negative' and 'unknown'
)。在最后一个参数中,您传递true
或false
以将其中一个标记为已选中。