Rails.root от двигателя
У меня возникли проблемы с доступом Rails.root
от моего рельсового двигателя, который я создаю. Мне нужно получить конфигурационный файл yml из основного приложения.
Есть ли "лучшие практики" для обработки конфигураций ваших двигателей?
2 ответа
Решение
Предположим, у вас есть атрибут модуля для этого.
# 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
Вместо этого используйте Rails.root
использовать: MyEngine::Engine.root
; D