Rails: .require() 没有真正需要它?
Rails: .require() without actually requiring it?
我正在尝试使用...
params.require(:subscriber).permit(:utm_source, :utm_medium, :utm_campaign, :utm_term, :utm_content)
问题是很少有我想做的事情:
Subscriber.new(subscriber_params)
而且我不在乎所有值是否为空...当我这样做时它会引发 ActionController::ParameterMissing
所以我需要一种方法来制作 require()
"optional" 但仍然使用它来限制嵌套参数和安全性,所以人们不能添加 {admin: true}
诸如此类...
实际的参数散列看起来像:
{subscriber: {utm_source: 1, ...}
我无法更改该部分,因为它在应用程序的许多其他地方使用。就这一个地方。
您可以使用 fetch
而不是 require
:
params.fetch(:subscriber).permit(:utm_source, :utm_medium, :utm_campaign, :utm_term, :utm_content)
查看 rails guides 了解有关 强参数 的更多信息。
我正在尝试使用...
params.require(:subscriber).permit(:utm_source, :utm_medium, :utm_campaign, :utm_term, :utm_content)
问题是很少有我想做的事情:
Subscriber.new(subscriber_params)
而且我不在乎所有值是否为空...当我这样做时它会引发 ActionController::ParameterMissing
所以我需要一种方法来制作 require()
"optional" 但仍然使用它来限制嵌套参数和安全性,所以人们不能添加 {admin: true}
诸如此类...
实际的参数散列看起来像:
{subscriber: {utm_source: 1, ...}
我无法更改该部分,因为它在应用程序的许多其他地方使用。就这一个地方。
您可以使用 fetch
而不是 require
:
params.fetch(:subscriber).permit(:utm_source, :utm_medium, :utm_campaign, :utm_term, :utm_content)
查看 rails guides 了解有关 强参数 的更多信息。