Sie müssen angeben, dass Ihre Rake Aufgabe, die Umwelt zu ladende erfordert:
task :your_task => :environment do |t| ...
oder
task :your_task => [:environment] do |t| ...
oder
task :your_task, :param1, :param2, :needs => :environment do |t, args| ...
oder
task :your_task, :param1, :param2, :needs => [:environment] do |t, args| ...
Wenn Sie dies tun angeben, dann gibt es ein weiteres Problem. Ich denke, dass eine häufige Fehlerquelle darin besteht, dass die Plugins in einen Namespace namens Rails::Plugin
geladen werden. Wenn Sie also eine Klasse namens Foo
in Ihrem Plugin definiert haben, muss die Rake-Task sie als Rails::Plugin::Foo
anstelle von einfach Foo
referenzieren.
Wenn dies Ihr Problem nicht lösen, dann versuchen puts "Check"
auf der ersten Zeile der init.rb
Plugin-Datei hinzuzufügen, und stellen Sie sicher, dass Check
angezeigt, wenn Sie Ihre Rake-Task ausführen. Wenn dies der Fall ist, wird das Plug-In geladen, aber möglicherweise wird es danach still ausgeführt.
Eine letzte Sache: vielleicht versuchen Sie, das Plugin außerhalb der Aufgabe, zum Beispiel am Anfang Ihrer Rake-Datei, in einigen Initialisierungscode zu verwenden? Wenn dies der Fall ist, wird es fehlschlagen, weil die Plugins nur geladen werden, wenn die Task ausgeführt wird (wenn die Umgebung geladen ist).
Hoffe, das hilft.
Das ist die Sache aber, wir haben die Umgebung, die auf diese Weise passiert ist, das macht es so merkwürdig. – nitecoder