如何使用Rails strong_parameters查看允许的参数列表?

时间:2014-05-07 20:13:57

标签: ruby ruby-on-rails-4

我正在从Rails 3应用程序迁移到Rails 4并对强参数进行更改。在此过程中,我一直在进行一些命令行调试,并希望能够查看所有当前允许的参数列表。

我以为这会像这样。

params.permitted?

我看过文档并用Google搜索,但是空洞了。

2 个答案:

答案 0 :(得分:2)

不,那是不可能的。因为params.require(:foo).permit(:bar)没有定义允许参数的列表,但是在每个请求中使用属性名称作为参数过滤params参数哈希。

如何查看允许参数列表,可以查看控制器。

另一种选择可能是将允许的参数存储在一个常量中,该常量可以从应用程序的任何位置查询:

# in the foos_controller
ALLOWED_PARAMS = [:bar]

def foo_params
  params.require(:foo).permit(*ALLOWED_PARAMS)
end

# elsewhere or in the Rails console
FoosController::ALLOWED_PARAMS
#=> [:bar]

详细了解此过滤的工作原理:http://api.rubyonrails.org/classes/ActionController/Parameters.html

答案 1 :(得分:0)

强制参数通常在控制器方法中定义,无法从控制台访问...