Кажется, я не могу найти никакой документации о том, как сделать следующее: мне нужно предоставить переменную конфигурации для любых приложений, использующих мой движок, чтобы они могли легко передавать настройки моему движку.
Есть ли у кого-нибудь ссылки на правильный или принятый способ сделать это?
РЕДАКТИРОВАТЬ: В качестве обновления я нашел достойный способ сделать это. Код ниже.
# file: lib/my_engine.rb
module MyEngine
class Engine < Rails::Engine
initializer "my_engine.configure_rails_initialization" do |app|
# Engine configures Rails app here, this is not what my question was about
end
end
# This is what I was trying to figure out
def self.config(&block)
@@config ||= MyEngine::Configuration.new
yield @@config if block
return @@config
end
end
Это позволяет любому приложению, использующему мой движок, настраивать его, как показано ниже, в любом из своих инициализаторов или в файле environment.rb, вызывая любые методы, определенные в классе MyEngine::Configuration
:
MyEngine.config do |config|
config.some_configuration_option = "Whatever"
end