验证Checkbox在Rails 3.2中不起作用

时间:2012-03-31 10:13:35

标签: ruby-on-rails ruby validation checkbox

它在之前的rails版本中有效。我无法找到解决方案。

    #Model

    validate  :branches_cannot_be_empty

    def branches_cannot_be_empty
       errors.add(:branches, "can't be empty") if branches.blank?
    end

    #View HAML
   .field.checkbox
     = f.label(:branch, "Assign to Branch")
     -if @march.branch_ids.include? ( branch.id )
      =check_box_tag "branches[#{branch.id}]", 1, true
     -else
      =check_box_tag "branches[#{branch.id}]"
     = branch.name

1 个答案:

答案 0 :(得分:3)

你无法验证这样的复选框 - 以rails形式(以及大多数其他框架,例如.net web表单)总是为复选框发回一个值。

渲染复选框时,隐藏字段也会呈现为false。因此,如果选中该复选框,则会得到值true,但如果未选中复选框,则会得到false值而不是空白。

在这里阅读rails文档的gotcha部分 - > http://apidock.com/rails/ActionView/Helpers/FormHelper/check_box