Rails,如何在选中时提交带有true的禁用复选框

时间:2015-05-28 20:28:28

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

我在使用禁用复选框时遇到问题。

我尝试了两种方法。 第一:

= check_box "permissions", "permission_#{row}[create]", {checked: has_permission?(@user, permission, "create")}, 'true', 'false'

此复选框在视图内部被禁用但也被选中,但是在提交时它的值在我的参数中看起来像这样:

"create"=>"false"

所以当我更新我的属性时,我的参数中创建的从true变为false。

当选中禁用的复选框时,如何才能发送true而不是false?

1 个答案:

答案 0 :(得分:1)

我认为您首先禁用这些复选框的原因是将权限设置为只读。但是,有人通过浏览器调试工具从复选框中删除disabled标志非常容易,设置权限并提交。

因此,我建议在递交给模型之前从params删除这些值,无论如何,例如将它们从允许的参数中排除,或者发布splice

这样您仍然会显示实际权限,但忽略任何未经授权更改它们的尝试。