Rails,单选按钮不在DB上的布尔字段中存储值

时间:2013-04-02 18:04:37

标签: ruby-on-rails ruby-on-rails-3 radio-button

我创建了一个小表单,允许用户提交“意见”。这可以是积极的或消极的。 我在DB上得到了一个'正'布尔字段。如果是正面则应该是真的,如果是负面则应该是假的。

=form_for @opinion do |f|
        = f.hidden_field :event_id
        %p
          =f.radio_button(:positive, :checked => (:positive == 1))
          =f.label :true, 'Positive'
          =f.radio_button(:positive, :checked => (:positive == 0))
          =f.label :false, 'Negative'
        %p
          =f.label 'Body'
          =f.text_area :body
        =f.submit

然而,一切都是正确的,但积极的领域。我做错了什么?

这就是我得到的

 Parameters: {"utf8"=>"✓", "authenticity_token"=>"EgFB9zohTA93ClNAQpS0qcsEivSCe1imjDUuw/e/YYA=", "opinion"=>{"event_id"=>"31", "positive"=>"{:checked=>false}", "body"=>"asdasasdasd"}, "commit"=>"Create Opinion", "locale"=>"en"}

2 个答案:

答案 0 :(得分:1)

删除:checked内容。如果您的数据库字段是布尔值,则rails form_for知道要检查哪个f.radio_button。

答案 1 :(得分:1)

当属性的值等于提供的值

时,Rails将添加'checked'
=f.radio_button :positive, 1
=f.label :true, 'Positive'
=f.radio_button :positive, 0
=f.label :false, 'Negative'

请查看doc