2016-10-07 4 views
0

質問のタイトルは、私が何をする必要があるかをほとんど説明しています。それが存在する場合、その質問に提供された例と同様に特定のコントローラーアクションに対して許可されたパラメーターのリストを取得する方法

Rails 4: get list of permitted attributes (strong parameters) from a controller

が、それはこのようなものに相当します:それは基本的に答えを受けたことがないこの質問と同じである

account_update_permitted_params = AccountController.permitted_params(:update)

答えて

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] 

しかし、私はあなただけのオープンコントローラのコードすることができるので、この点を見て、それを確認してください点在しています。

+0

お返事ありがとうございます!私はあなたの例では 'LIST'のように、追加のコードを追加することができないコントローラの許可された属性にプログラムでアクセスしようとしていました。あなたが述べるように、要求の間だけparamsオブジェクトが存在するため、これは不可能です。 – eggroll

関連する問題