rails5 / params.merge 导致有关不安全的错误

rails5 / params.merge causes errors about being insecure

具有以下语法:url_for(params.merge(locale: :en))

Rails 5 块它,抱怨以下内容:Generating an URL from non sanitized request parameters is insecure!

要获得相同的结果,最新的适当语法是什么?

您可以在 url_for 中合并本地:

url_for(locale: :en)

会复用当前的请求参数生成最终的URL.

您可以使用

覆盖ActionController::Parameter安全
url_for(params.to_unsafe_h.merge(locale: :en))

我通常为此创建一个助手

def params_plus(additional_params)
  params.to_unsafe_h.merge(additional_params)
end

然后像这样使用它

url_for(params_plus(locale: :en))

其他答案已经建议url_for(locale: :en)但这会删除现有的请求参数,我相信这不是您想要的。