Rails:.require()没有实际需要它?
问题描述:
我试图使用...Rails:.require()没有实际需要它?
params.require(:subscriber).permit(:utm_source, :utm_medium, :utm_campaign, :utm_term, :utm_content)
的问题是,有极少数情况下,我想做的事:
Subscriber.new(subscriber_params)
如果所有的值我不在乎是空的......当我这样做时,它提高了ActionController::ParameterMissing
所以我需要的是一种方法使require()
“可选”,但仍然使用它的限制嵌套参数和安全的好处,所以p eople不能{admin: true}
之类的东西添加...
实际PARAMS散的样子:
{subscriber: {utm_source: 1, ...}
,因为它在许多别的地方我不能改变的部分应用程序。这只是这一点。
答
可以使用fetch
代替require
:
params.fetch(:subscriber).permit(:utm_source, :utm_medium, :utm_campaign, :utm_term, :utm_content)
检查rails guides对强大的参数更多信息。
谢谢!什么是'标量'?我阅读了这些文档,并且我不太了解几位 – Tallboy
@Tallboy _scalar_可以被描述为**一个包含单个值**的变量。例如,数字或字符串都是标量,但数组或哈希不是。查看[这篇文章](https://softwareengineering.stackexchange.com/questions/238033/what-does-it-mean-when-data-is-scalar)以获得更详细的答案。 – Gerry