Nach http://edgeapi.rubyonrails.org/classes/Rails/Railtie.html, wenn ich eine Rails 3 Plugin schreiben, und ich möchte in der Initialisierung einzuhaken, schreibe ichInitialisierungsschritt hinzufügen im Server-Modus nur 3 Boot-Prozess Rails
class MyRailtie < Rails::Railtie
initializer "my_railtie.configure_rails_initialization" do
# some initialization behavior
end
end
Doch diese initializer erscheint ausgeführt werden, wenn Sie beispielsweise eine Rails rake
Aufgabe ausführen, nicht nur, wenn Sie rails s
oder ähnliches ausführen. Meine Frage ist, wie verhindere ich, dass mein Code in diesem Block während Rails-Aufgaben ausgeführt wird, im Gegensatz zu vollständigen Rails-Server-Starts? Dies scheint ein häufiges Problem mit Rails 3 Plugins zu sein.
Das funktioniert nicht für mich, egal welchen Code ich in config.after_initialize eintrage wird auch im Konsolenmodus oder Rake-Modus aufgerufen – Alex
Hmm, verwenden Sie den gleichen Stil wie in [Mongoid's railtie.rb] (https: // github. com/mongoid/mongoid/blob/master/lib/mongoid/railtie.rb)? Mit 'config.after_initialize 'verschachtelt innerhalb eines' initializer' Blocks? –
Ich habe die config.after_initialize Block in meine application.rb, aber der Code scheint jedes Mal zu starten, egal ob es von Rails C oder Rails s gestartet ist, oder sogar ein einfacher Rake – Alex