问题的标题几乎描述了我需要做的事情。它与这个问题基本相同,从未得到答案:
Rails 4: get list of permitted attributes (strong parameters) from a controller
与该问题中提供的示例类似,如果它存在,它将等同于此类:
account_update_permitted_params = AccountController.permitted_params(:update)
答案 0 :(得分:1)
由于强参数的性质,你基本上不能这样做。
您在some_resource_attributes
中定义的内容旨在过滤请求的参数哈希值。如果查看方法定义,您将看到params.require(:some_resource).permit..
- 它在params
对象上运行,该对象仅在请求期间出现。
因此,使用这种方法似乎没什么用处。
如果您真的想以编程方式访问some_resource_attributes
中列入白名单的属性,可以使用:
class ResourceController < ApplicationController
LIST = %i(foo bar baz)
private
def resource_attributes
params.require(:resource).permit(*LIST)
end
end
ResourceController::LIST
#=> [:foo, :bar, :baz]
但是我在这里看到了一点,因为你可以打开控制器的代码并检查它。