ActionController :: Parameters'require'方法返回一个字符串

时间:2016-07-22 17:00:50

标签: ruby-on-rails ruby

在我的控制器的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的新手,抱歉。

2 个答案:

答案 0 :(得分:0)

正确的语法是:

params.require(:xyz).permit(:local, :name)

答案 1 :(得分:0)

我看了一下Rails guides - Strong Parameters,它提供了一个很好的例子和解释如何获得参数。所以你的代码应该是这样的:

def xyz_params
  params.require(:xyz).permit(:name, :local)
end