4

ターゲットメソッドの名前をbeforeフィルターで使用できるようにする方法はありますか?

たとえば、私は次のコードを持っています

before_filter :login

def show
   #...
end

def login
   # ...
   # get the name of method original called 
   # ...
end 

http://<host>/showが呼び出され、その後ログインが呼び出されます

文字列などを取得しshowて、別のコントローラーで実際に行われるログインに命令を渡して、元のターゲットメソッドに戻すことが できますか?

4

2 に答える 2

6

paramsからアクションを取得するだけです。params[:action]

于 2012-05-24T18:34:50.860 に答える
1

@apneadivingが述べたようparams[:action]に、「ターゲット」(つまり、「show」、「index」など)を取得するためにアクセスできます。

注意点として、一般的にbefore_filtersの場合は、単に使用すると奇妙な動作が発生することがあるため、代わりに使用する必要がrequest.paramsあります(これは過去に行ったことがあります。正確な奇妙な動作は覚えていませんが、理想的ではありませんでした)。また、paramsを更新している場合は、のようなことをするのではなく、request.paramsにマージする必要があることがわかりました。paramsparamsparams[:key] = value

于 2012-05-24T17:52:00.780 に答える