は、私がパンくずのようなものを構築するためにビューに情報を渡すためにベースコントローラで、いくつかのロジックを持っていると仮定します。レンダリング前でコントローラの後に実行するフィルタ?
class ContextAwareController < ApplicationController
after_filter :build_breadcrumb
def build_breadcumb
#...
end
end
私は前後、メインコントローラロジックが、を実行するには、このbuild_breadcrumb方法をしたいですビューがレンダリングされます。
上記のコードは遅すぎますが、before_filterは早すぎます。
誰でも、子コントローラの各アクションの最後に明示的にbuild_breadcumbを呼び出さなくても、これを達成する方法を提案できますか?
おかげ
しかし、この解決策はすべてのレンダリングを遅くします。 – freemanoid
特定のコントローラから作成されたレンダリングを遅くするだけです。ブレッドクラムを必要とするアクションだけがこのバージョンの 'render'を使用するように、これを別のコントローラまたは"サブコントローラ "に移動するのは簡単です。 – Jon
コントローラの懸念事項を使用して、この機能を選択的に追加することもできます http://elegantbrew.tumblr.com/post/70990048275/controller-concerns-in-rails-4 – MhdSyrwan