Как запустить мой ruby-код после запуска Rails-сервера?
Я пробовал:
after_initialize do
#code
end
Но: (документация)
Некоторые части вашего приложения, особенно наблюдатели и маршрутизация, не являются но настроен в точке, где вызывается блок after_initialize.
Мне нужен маршрутизатор и регистратор в моем коде
Любые идеи?
Ответы
Ответ 1
См. раздел 3.1 из http://guides.rubyonrails.org/configuring.html
Я верю, что вы поместили бы этот код в config/application.rb
config.after_initialize do
# ....
end
# config.after_initialize takes a block which will be run after Rails has finished initializing the application.
# That includes the initialization of the framework itself
Также http://guides.rubyonrails.org/initialization.html
Ответ 2
Другой вариант - создать пользовательский инициализатор. Это всего лишь рубиновый файл, который живет под конфигурационными/инициализаторами/и выполняется именно с событием "on_server_start":)
Ответ 3
@house9 answer является правильным, как указано в комментариях, это также будет выполняться при выполнении задач rake, консоли и т.д. Я использовал следующее, чтобы узнать, когда фактически выполнялся сервер:
# application.rb
if defined?(Rails::Server)
config.after_initialize do
# Do stuff here
end
end