Rails 4 - 控制器强参数 - 使用脚手架生成

Rails 4 - controller strong params - generated with scaffold

我正在尝试在 Rails 4.

中制作一个应用程序

我使用脚手架生成器作为我的资源起点。

我注意到,当我在这个板上提问时,人们对我在控制器中的强参数定义的形式发表评论。

脚手架生成器以这种格式创建它们:

def industry_params
      params[:industry].permit(:sector, :icon)
end

大多数显示如何将强参数列入白名单的资源都显示这种格式。

def industry_params
  params.require(:industry).permit(:sector, :icon)
end

http://edgeapi.rubyonrails.org/classes/ActionController/StrongParameters.html

rails 脚手架生成器创建此方法的方式有什么问题吗?

require 方法确保特定参数存在,如果未提供,则 require 方法会抛出错误。它 returns 一个 ActionController::Parameters 的实例,用于传递给 require 的密钥。

permit 方法returns 参数对象的副本,仅返回允许的键和值。

如您所见,在使用脚手架的默认系统时,我们需要检查 params 中是否有任何值,而 require 如果缺少则抛出错误.