2016-03-25 18 views

答えて

2

いいえ、必ずしもindexメソッドの後に実行されるとは限りません。

あなたがaround_filterを使用するので、その方法後および/またはを実行します。ドキュメントフォーム

def custom_render 
    # some code that will run before the action 

    yield # here your index action runs 

    # some code that will run after the action 
end 

「アラウンド」フィルタは降伏によってそれに関連したアクションを実行する責任があり、同様のことは、あなたがcustom_renderメソッドを(あなたがyieldを置く別名場所)を実装する方法によって異なりますラックミドルウェアがどのように機能するかについて説明します。

言い換えれば、メソッドがaroundフィルタに戻るときに応答が既にレンダリングされているため、afterまたはaroundフィルタでレンダリングの動作を変更できません。

+0

回答ありがとうございますが、yield後にレンダリングロジックを追加すると、それは実行されません。どのように修正するのですか?あなたが思うこと? – rs41

+0

@ rs41私はあなたの質問に答えるために私の答えを更新しました。達成しようとしていることを説明してください。他にもオプションがあるかもしれませんが、あなたが何を目指しているのかを記述する必要があります。解決しようとしている問題を詳しく教えてください。 – spickermann

+0

私はいくつかのロジックをコントローラに入れたいのですが、最後にこのロジックが特定のファイルをレンダリングした後にします。 ( '' 'render'''の引数は異なります)これには簡単な解決策がありますか? – rs41