2

有这个语法:url_for(params.merge(locale: :en))

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

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

4

2 回答 2

1

您可以将本地合并到url_for

url_for(locale: :en)

它将重用当前请求参数来生成最终 URL。

于 2016-02-04T09:50:21.907 回答
0

您可以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)但这会丢弃现有的请求参数,我相信这不是您想要的。

于 2019-01-04T18:35:30.837 回答