По http://edgeapi.rubyonrails.org/classes/Rails/Railtie.html, если я пишу плагин Rails 3, и я хочу, чтобы вклиниться в процесс инициализации, я пишуДобавить шаг инициализации Rails 3 процесса загрузки только в режиме сервера
class MyRailtie < Rails::Railtie
initializer "my_railtie.configure_rails_initialization" do
# some initialization behavior
end
end
Однако появляется этот инициализатор для выполнения, например, задачи Rails rake
, а не только при запуске rails s
или аналогичных. Мой вопрос в том, как я могу запретить запуск моего кода в этом блоке во время задач Rails, в отличие от полных загрузок сервера Rails? Это, по-видимому, общая проблема с плагинами Rails 3.
Это не работает для меня, независимо от того, какой код я вставлял в config.after_initialize, вызывается даже в режиме консоли или в режиме грабли – Alex
Хм, вы используете тот же стиль, что и в [Mongoid's railtie.rb] (https: // github. ком/Mongoid/Mongoid/BLOB/Master/Библиотека/Mongoid/railtie.rb)? С 'config.after_initialize' вложенным внутри блока' initializer'? –
Я поместил блок config.after_initialize в свой application.rb, но код, кажется, запускается каждый раз, независимо от того, запущен ли он рельсами c или рельсами s или даже простой rake – Alex