Rails单选按钮 - 模型中多列的一种选择

时间:2011-12-06 18:35:27

标签: ruby-on-rails ruby ruby-on-rails-3 forms

我希望用户为一个型号中的三个选择一个选项。

即。我有一个模型视频,可以评为正/负/未知

目前我有三列布尔值(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' %>

但显然它允许多个选择,而我试图将其限制为只有一个..

怎么办?

2 个答案:

答案 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')。在最后一个参数中,您传递truefalse以将其中一个标记为已选中。