如何使单选按钮存储布尔值?

时间:2013-11-16 14:48:49

标签: ruby-on-rails

我有一个包含以下代码的表单来存储布尔值。 isteacher是db中的布尔值。我正在尝试设置这个,以便在注册表单上,用户会检查学生或教师的单选按钮,我将在控制器中使用if @user.isteacher = true检查

  <div><%= label :isteacher, "Teacher" %>
  <%= f.radio_button :isteacher, true, :checked => true , :value => true %></div>

  <div><%= label :isteacher, "Student"%>
  <%= f.radio_button :isteacher, false, :value => false %></div>

在架构中,布尔值如下所示:t.boolean "isteacher", default: false, null: false

问题

创建新用户并选择“教师”单选按钮时,db始终反映学生。如果我尝试编辑注册,则会保存数据,但每次返回表单时都会选择学生单选按钮。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

我不确定这是否能完全解决您的问题,但通常您不想放置:checked =&gt;在f.radio_button里面是真的。这将忽略已保存的值,并在页面加载时检查该复选框。您可能还想在f.label中传递:value选项,因为这表示单击标签时应选择相应的复选框。我建议尝试类似的事情:

<div><%= f.label :isteacher, "Teacher", :value => true %>
<%= f.radio_button :isteacher, true %></div>

<div><%= f.label :isteacher, "Student", :value => false %>
<%= f.radio_button :isteacher, false %></div>