2012-04-22 8 views
1

ここで何か間違っている必要があります。私は、コントローラが実行された後に実行する関数にしたい。この関数は、セッション変数の一部を移入し、次のリクエストでその情報を使用します。ここにコードがあります。このコードでafter_filter:foo fooがコントローラのレールの前で実行されます。3.2

class SummariesController < ApplicationController 
    after_filter :foo, :only=>[:bar] 

    def foo 
     session[:x] = y 
    end 

    def bar 
     #some code 
    end 
end 

foobar前に呼び出されます。私はそれがバーがレンダリングされた後に呼び出されます。何が間違っているのですか?

答えて

1

after_filterが応答をクライアントに送信する前に実行されるため、barがレンダリングされた後にこれを実行することはできません。 Railsのガイドから:

彼らはクライアントにを送信されよう

+0

うんだ応答データへのアクセス権を持って、それはそれです。 – Andrew

+0

混乱を解決してくれてありがとう。しかし、バーがレンダリングされた後にメソッドを実行する方法はありますか? – shishirmk

+0

これは、Railsの古いバージョンであっても役立つようです:http://stackoverflow.com/questions/4325538/rails-2-3-x-execute-code-after-request-was-rendered返された –

関連する問題