2009-06-24 8 views
2

私はを含むOptionsControllerを持っています。対応するビューには3つのフォームがあり、3つの異なるアクション、update_profileupdate_userおよびchange_passwordにポストします。各アクションが実行され、actionにリダイレクトされ、ビューが再びセットアップされてレンダリングされます。DRYを維持しながら複数のアクションを1つのアクションにリダイレクトするにはどうすればよいですか?

私は乾燥して、リダイレクトを行うにはafter_filterを作成しようとしていた。しかし、これが呼び出されるようには見えない

after_filter(:only => [:change_password, :update_profile, :update_user]) do |controller| 
    controller.send(:redirect_to, :action => :account) 
end 

を。むしろ、この見解が見つからないと訴えている。

Template is missing 
Missing template options/update_user.erb in view path app/views 

私はDRY方法でこれを行うことができます任意の方法はありますか、私は3つのアクションのそれぞれにおけるredirect_to呼び出しを貼り付けるべきか?

答えて

8

それぞれのアクションでredirect_toコールを入力するだけです。 DRYと理解不能な魔法の間には細かい線があります。私はafter_filterのような何かをしようとしているような気がします。あるいは、予想外の行動が予想外に壊れているものは、おそらくあまりにも魔法です。

2

の後では、の後に応答がクライアントに送信されます。これは、レンダリングやリダイレクトが発生した後にそのエラーが表示されるためです。ログデータ、ベンチマークや接続などの処理や、他の種類のクリーンアップを行うことができます。

関連する問題