0

我试图使用...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, ...}

,因为它在许多别的地方我不能改变的部分应用程序。这只是这一点。

回答

1

可以使用fetch代替require

params.fetch(:subscriber).permit(:utm_source, :utm_medium, :utm_campaign, :utm_term, :utm_content) 

检查rails guides强大的参数更多信息。

+0

谢谢!什么是'标量'?我阅读了这些文档,并且我不太了解几位 – Tallboy

+1

@Tallboy _scalar_可以被描述为**一个包含单个值**的变量。例如,数字或字符串都是标量,但数组或哈希不是。查看[这篇文章](https://softwareengineering.stackexchange.com/questions/238033/what-does-it-mean-when-data-is-scalar)以获得更详细的答案。 – Gerry

相关问题