Tal*_*boy 5 parameters ruby-on-rails actioncontroller strong-parameters ruby-on-rails-5
我正在尝试使用...
params.require(:subscriber).permit(:utm_source, :utm_medium, :utm_campaign, :utm_term, :utm_content)
Run Code Online (Sandbox Code Playgroud)
问题是在极少数情况下我想做:
Subscriber.new(subscriber_params)
我不在乎所有的值是否都是空的......当我这样做时它会引发ActionController::ParameterMissing
所以我需要的是一种使require()“可选”成为“可选”的方法,但仍然使用它来限制嵌套参数和安全性,这样人们就无法添加{admin: true}诸如此类的东西......
实际的 params 哈希看起来像:
{subscriber: {utm_source: 1, ...}
我无法更改该部分,因为它已在应用程序的许多其他地方使用。就这一点而已。
您可以使用fetch代替require:
params.fetch(:subscriber).permit(:utm_source, :utm_medium, :utm_campaign, :utm_term, :utm_content)
Run Code Online (Sandbox Code Playgroud)
检查导轨指南以获取有关强参数的更多信息。