Rails,如何在选中时使用 true 提交禁用复选框

Jay*_*Jay 5 html ruby-on-rails ruby-on-rails-4

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

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

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

这个复选框在视图内被禁用,但也被选中,但提交时它在我的参数中的值如下所示:

"create"=>"false"
Run Code Online (Sandbox Code Playgroud)

因此,当我更新我的属性时,我的参数中的 created 从 true 更改为 false。

如何将禁用复选框已禁用复选框时发送至我的Params而不是False的True?

Sky*_*ter 2

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

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

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