【发布时间】:2017-12-28 22:00:02
【问题描述】:
控制器:
def foo
redirect_to home_path(params: auth_params)
end
private
def auth_params
params.require(:auth).permit(:name, :email, :photo_url, :provider, :provider_id)
end
以下是控制器出错的参数:
参数:
{"utf8"=>"✓",
"authenticity_token"=>"...",
"auth"=>
{"name"=>"...",
"email"=>"...",
"photo_url"=>"...",
"provider"=>"...",
"provider_id"=>"..."}
}
出现此错误:unable to convert unpermitted parameters to hash
我允许所有参数(除了rails默认参数(即utf8,authenticity_token,那么为什么会弹出这个错误?
编辑:
以下建议均无效:
redirect_to home_path(auth_params)
redirect_to home_path, params: auth_params
关于我如何获得控制器操作的更多信息可能会有所帮助:
我(在同一个控制器中)有一个动作 bar,在转到 foo_path 的视图中有一个 form_tag。我试过通过 jQuery 或提交按钮提交表单,它不会改变结果。当我点击auth_params 方法时,我得到了错误。
这意味着它在 auth_params 方法而不是重定向本身上出错
【问题讨论】:
-
你试过
home_path(params)吗? -
通过
auth_params而不是params: auth_params -
这些都不能解决问题。见编辑
标签: ruby-on-rails ruby-on-rails-5 strong-parameters