我正在从Rails 3应用程序迁移到Rails 4并对强参数进行更改。在此过程中,我一直在进行一些命令行调试,并希望能够查看所有当前允许的参数列表。
我以为这会像这样。
params.permitted?
我看过文档并用Google搜索,但是空洞了。
答案 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)
强制参数通常在控制器方法中定义,无法从控制台访问...