【发布时间】:2015-11-30 04:41:33
【问题描述】:
在我们不关心批量分配的脚手架表单的管理员专用控制器中,我们仅使用许可实现了强参数!方法(没有 .require() 或 .permit() )应该简单地将 params 允许标志设置为 true,将 params 对象中的任何内容列入白名单。
private
def foo_params
params.permit!
end
在我们的控制器中
def create
@foo = Foo.new(foo_params)
但是,在规范和运行应用程序时,控制器的 create 方法会抛出异常:
unknown attribute 'utf8' for Foo
如果我们添加 .require(:MODEL) 错误就会消失,例如更改 foo_params
private
def foo_params
params.require(:foo).permit!
end
是否需要 .require() 来避免由于某些神奇添加的 Rails 表单属性(如 utf8 属性)而引发异常?
(如果有什么不同,那就是从 Rails 3.2 升级到 4.2 的应用程序,否则可以正常工作。)
【问题讨论】:
标签: ruby-on-rails forms strong-parameters