我试图使用......
params.require(:subscriber).permit(:utm_source, :utm_medium, :utm_campaign, :utm_term, :utm_content)
问题是我很少想要这样做:
Subscriber.new(subscriber_params)
如果所有值都为空,我都不在乎......当我这样做时它会引发ActionController::ParameterMissing
所以我需要的是一种制作require()
"可选"但仍然使用它来限制嵌套参数和安全性,因此人们无法添加{admin: true}
之类的东西......
实际的params哈希看起来像:
{subscriber: {utm_source: 1, ...}
我无法更改该部分,因为它已在应用的许多其他位置使用。它只是这一点。
答案 0 :(得分:1)
您可以使用fetch
代替require
:
params.fetch(:subscriber).permit(:utm_source, :utm_medium, :utm_campaign, :utm_term, :utm_content)
查看rails guides以获取有关强参数的更多信息。