在我的控制器的create
方法上,尝试设置必需和允许的参数失败:
params.fetch(:xyz, {}).require(:name).permit(:local)
返回
undefined method `permit' for "EXAMPLE":String Did you mean? print
params最初是
"utf8"=>"✓",
"authenticity_token"=>"...",
"xyz"=>{"name"=>"EXAMPLE", "local"=>""},
"commit"=>"Create xyz"}
我甚至尝试创建新的Parameters对象,但没有改变:
ActionController::Parameters.new(params.fetch(:dispensary, {})).require(:name).permit(:local)
有人可以对此有所了解吗?我是Rails的新手,抱歉。
答案 0 :(得分:0)
正确的语法是:
params.require(:xyz).permit(:local, :name)
答案 1 :(得分:0)
我看了一下Rails guides - Strong Parameters,它提供了一个很好的例子和解释如何获得参数。所以你的代码应该是这样的:
def xyz_params
params.require(:xyz).permit(:name, :local)
end