В Rails as я переключаю (включаю / отключаю / загружаю / выгружаю) плагины через маршруты во время выполнения?
Для загрузки специального плагина я использую в файле "config / application.rb":
module MyApp
class Application < Rails::Application
#when starting the server
#the application only loads the plugin "default_app"
config.plugins = [:default_app]
end
end
Но мне нужно загрузить другие плагины во время выполнения, например, плагин ": x" и ": y", и иметь возможность переключаться между плагинами следующим образом:
#execute before every request
ActionDispatch::Callbacks.before do
#making a request to: localhost:3000/load_plugin/x/:controller/:action
#should load:
MyApp.Application.config.plugins = [:default_app,:x]
#making a request to: localhost:3000/load_plugin/y/:controller/:action
#should load:
MyApp.Application.config.plugins = [:default_app,:y]
end
Любая идея, как мне это сделать?
РЕДАКТИРОВАТЬ
Я не могу сделать это при запуске, потому что плагины должны иметь следующую структуру:
- vendor / plugins / x / app / controllers / a_controller.rb
- vendor / plugins / y / app / controllers / a_controller.rb
- (многие другие)
каждый файл должен заменять другой в соответствии с запросом.это также должно быть верно для моделей и видов, а также для других файлов, таких как папка ресурсов