2011-08-09 9 views
2

モデルからRailsヘルパーにアクセスする際には多くの疑問があります。そのすべては、その答えがそうでないと正当に述べています。これはその質問ではありません。プレゼンター/モジュールからRailsヘルパーにアクセスしますか?

かなり複雑なコントローラーとプレゼンタークラスに抽象化したいビューコードがあります。しかし、そのクラスはApplicationControllerの子孫ではありません。 deviseのcurrent_userにアクセスするにはどうすればよいですか?

答えて

3

現時点でこれを行うには「正式な権利」はないようです。二つの可能性:

  1. それはハックですが、あなたはApplicationControllerにで現在のコントローラを格納し、ヘルパーに得るためにあなたのプレゼンターでそれを参照することができます

    class ApplicationController < ActionController::Base 
        prepend_before_filter { @@current_controller = self } 
    end 
    
    class YourPresenter 
        def current_user 
        ApplicationController.current_controller.current_user 
        end 
    end 
    
    1. ジェフ・カシミールがに取り組んでいます
:全体的なアイデアをカプセル化し ドレイパーと呼ばれる偉大なデコレータ/プレゼンターの宝石

+1

これはまだ2015年に行く方法ですか? – amoebe

関連する問題