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

Другие вопросы по тегам