私が作成しているレールエンジンからRails.root
にアクセスする際に問題が発生しました。私はメインアプリからyml設定ファイルを取得する必要があります。Rails.root from engine
エンジンの設定を処理するための「ベストプラクティス」はありますか?
私が作成しているレールエンジンからRails.root
にアクセスする際に問題が発生しました。私はメインアプリからyml設定ファイルを取得する必要があります。Rails.root from engine
エンジンの設定を処理するための「ベストプラクティス」はありますか?
モジュール属性があるとします。
# 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
私にとっては、 'initialize'ではなく' initializer'でなければなりませんでした..(http://edgeapi.rubyonrails.org/classes/Rails/Engine.html) –
ええ、typo。今更新されました。ありがとう! – shime
優れた答え、ありがとうございます! – newUserNameHere
代わりRails.root
使用使用:MyEngine::Engine.root
を; D
これは私にとってはうまくいかなかった。 –
@ dan-klassonどこにアクセスしようとしていますか?メインアプリ内またはエンジン内部で? 'engine.rb'には –
があります。 –
あなたは 'Rails.application.root'にしようとしましたか? – shime
はい、これもゼロです。 – sandelius