2012-07-23 4 views
7

私が作成しているレールエンジンからRails.rootにアクセスする際に問題が発生しました。私はメインアプリからyml設定ファイルを取得する必要があります。Rails.root from engine

エンジンの設定を処理するための「ベストプラクティス」はありますか?

+0

あなたは 'Rails.application.root'にしようとしましたか? – shime

+0

はい、これもゼロです。 – sandelius

答えて

8

モジュール属性があるとします。

# lib/my_engine.rb 

module MyEngine 

    mattr_accessor :app_root 

end 

次に、あなたがそうのような初期化ブロックからそれをロードすることができます。

# lib/my_engine/engine.rb 

module MyEngine 

    class Engine < Rails::Engine 

    initializer "my_engine.load_app_root" do |app| 

     MyEngine.app_root = app.root 

    end 

    end 

end 
+0

私にとっては、 'initialize'ではなく' initializer'でなければなりませんでした..(http://edgeapi.rubyonrails.org/classes/Rails/Engine.html) –

+0

ええ、typo。今更新されました。ありがとう! – shime

+0

優れた答え、ありがとうございます! – newUserNameHere

1

代わりRails.root使用使用:MyEngine::Engine.rootを; D

+0

これは私にとってはうまくいかなかった。 –

+0

@ dan-klassonどこにアクセスしようとしていますか?メインアプリ内またはエンジン内部で? 'engine.rb'には –

+0

があります。 –

関連する問題