即使{checked:false},Rails总是会检查帮助器复选框

时间:2015-07-07 10:09:55

标签: ruby-on-rails ruby-on-rails-4 checkbox

Ruby on Rails 4.2.1 在一个视图中,我正在制作这样的复选框:

<%= check_box_tag('roles[' + role.name + '][' + perm.name + ']', 1, {checked: role.permissions.include?(perm)}) %>

但即使role.permissions.include?(perm)返回false

,这也会每次都会显示一个选中的复选框

我在视图中放了debugger并仔细检查了这一点。当我进入调试控制台时,在视图内部:

check_box_tag('test', 1, {checked: false})

出来了:

"<input type=\"checkbox\" name=\"test\" id=\"test\" value=\"1\" checked=\"checked\" />"

这是Rails形式助手中的错误还是我错过了什么?

1 个答案:

答案 0 :(得分:2)

您应该使用check_box_tag之类的:

check_box_tag('test', 1, false, {})

阅读文档:

 check_box_tag(name, value = "1", checked = false, options = {})

第三个参数应该是布尔值,但是您传递的哈希总是返回true