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

时间:2016-01-03 03:33:27

标签: ruby-on-rails strong-parameters

我正在尝试在Rails 4中创建一个应用程序。

我使用脚手架生成器来创建我的资源起点。

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

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

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 scaffold生成器创建此方法的方式有什么问题吗?

1 个答案:

答案 0 :(得分:1)

require 方法确保存在特定参数,如果未提供,则require方法会引发错误。它为传递给require的密钥返回ActionController::Parameters的实例。

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

正如您在使用scafffold的默认系统时所看到的,我们需要检查params中是否有任何值,而需要如果缺少则会抛出错误。