2017-01-13 11 views
0

ApplicationControllerにヘルパーメソッドを追加する宝石を作りたいと思います。それで、Gemfileの中でgemを使うのが私のやり方です。ヘルパーメソッドは、main_appのすべてのコントローラとビューで自動的に使用可能になります。宝石/エンジンからRailsプロジェクトのクラスにメソッドを追加するには?

私はこのような構造とRailsのエンジンを持っているので、ために:私はReopening Ruby Classesようundefined method 'is_available_in_main_app?' for <ApplicationController:0x007fb04d446d80>

記事を取得していますので、

app/ 
    controllers/ 
    application_controller.rb 

class ::ApplicationController < ActionController::Base 
    # NB, this extends the main app's application controller 

    helper_method :is_available_in_main_app? 

    protected 
    def is_available_in_main_app?   
     return true 
    end 

end 

残念ながら、この方法は、信じるために私を導くピックアップを取得していないようですこれはうまくいくはずです。
いくつかのRailsの魔法はそれを防ぐのですか?

+0

私はこれが私の唯一の推測では、あなたの上記のクラスがロードされていないことである、またはあなたの 'ApplicationController'が名前空間であることを...失敗するべき理由何らかの理由が表示されませんか? –

答えて

-1

おそらくprotectedを削除するだけですか?このように:

class ::ApplicationController < ActionController::Base 
    # NB, this extends the main app's application controller 

    helper_method :is_available_in_main_app? 

    def is_available_in_main_app?   
    return true 
    end 
end 
関連する問題