Mam problem z dostępem do mojego silnika szyn, który tworzę. Muszę pobrać plik konfiguracyjny yml z głównej aplikacji.Rails.root z silnika
Czy istnieją "najlepsze praktyki" w zakresie obsługi konfiguracji dla silników?
Mam problem z dostępem do mojego silnika szyn, który tworzę. Muszę pobrać plik konfiguracyjny yml z głównej aplikacji.Rails.root z silnika
Czy istnieją "najlepsze praktyki" w zakresie obsługi konfiguracji dla silników?
Załóżmy, że masz atrybut modułu dla tego.
# lib/my_engine.rb
module MyEngine
mattr_accessor :app_root
end
Następnie można załadować go z bloku initialize tak:
# 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
Dla mnie musiało to być 'initializer' zamiast' initialize' .. (http://edgeapi.rubyonrails.org/classes/Rails/Engine.html) –
tak, literówka. zaktualizowane teraz. dzięki! – shime
Doskonała odpowiedź, dziękuję! – newUserNameHere
Zamiast używać Rails.root
zastosowanie: MyEngine::Engine.root
D
to nie działa dla mnie. –
@ dan-klasson gdzie próbujesz uzyskać dostęp? W głównej aplikacji lub w samym silniku? –
W 'engine.rb'. –
Próbowałeś z 'Rails.application.root'? – shime
Tak i to również zero. – sandelius