Rails表单处理:如何处理单选按钮?

时间:2012-10-11 18:47:24

标签: ruby-on-rails database-design

我有一个标准的控制器users,由脚手架生成并稍微动了一下。使用迁移,我将:gender:orientation字段类型从整数更改为字符串。 我有一个表单的视图,用于向users表提交新条目:

<%= form_for @user do |f| %>
<%= f.label :first_Name %><br><%= f.text_field :first_name %><br>
<%= f.label :last_name %><br><%= f.text_field :last_name %><br>
<%= f.radio_button :orientation, false %><%= f.label :orientation, "Straight" %>
<%= f.radio_button :orientation, false %><%= f.label :orientation, "Gay" %>
<%= f.radio_button :orientation, false %><%= f.label :orientation, "Bi" %><br>
<%= f.submit "Go" %>
<% end %>

但是,当我检查数据库本身时,:gender:orientation都是'false'。我希望它们是用户选择的值。

我该怎么做?这有什么不对?

此外,为每个选择设置布尔字段会更好吗?

:man :boolean
:woman :boolean
:gay :boolean

2 个答案:

答案 0 :(得分:0)

尝试check_box而不是radio_button?

<%= f.check_box :man %>

答案 1 :(得分:0)

正确的代码:

I am:<br>
<%= f.radio_button :gender, "Male" %><%= f.label :gender, "Man" %>
<%= f.radio_button :gender, "Female" %><%= f.label :gender, "Woman" %><br>

Sexsual Orientation:<br>
<%= f.radio_button :orientation, "Straight" %><%= f.label :orientation, "Straight" %>
<%= f.radio_button :orientation, "Gay" %><%= f.label :orientation, "Gay" %>
<%= f.radio_button :orientation, "Bi" %><%= f.label :orientation, "Bi" %