0

我创建了一个小表单来允许用户提交“意见”。这可以是积极的或消极的。我在数据库上有一个“正”布尔字段。如果是肯定的,这应该是正确的,如果是否定的,这应该是错误的。

=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"}
4

2 回答 2

1

取出:checked东西。如果您的数据库字段是布尔值,则 rails form_for 知道要检查哪个 f.radio_button。

于 2013-04-02T18:19:25.583 回答
1

当您的属性值等于提供的值时,Rails 将添加“已检查”

=f.radio_button :positive, 1
=f.label :true, 'Positive'
=f.radio_button :positive, 0
=f.label :false, 'Negative'

请检查文档

于 2013-04-02T18:22:35.880 回答