Вы должны указать, что Rake задача требует среды для загрузки:
task :your_task => :environment do |t| ...
или
task :your_task => [:environment] do |t| ...
или
task :your_task, :param1, :param2, :needs => :environment do |t, args| ...
или
task :your_task, :param1, :param2, :needs => [:environment] do |t, args| ...
Если вы сделали это указать, то есть еще одна проблема. Я думаю, что один общий источник ошибок связан с тем, что плагины загружаются внутри пространства имен, называемого Rails::Plugin
. Поэтому, если в вашем плагине определен класс Foo
, задача Rake должна ссылаться на него как Rails::Plugin::Foo
, а не просто Foo
.
Если это не решит вашу проблему, то попробуйте добавить puts "Check"
на первой строке init.rb
файла плагина, и убедитесь, что Check
отображается при запуске задачи грабли. Если это так, ваш плагин загружается, но, возможно, после этого он терпит неудачу.
Последнее: возможно, вы пытаетесь использовать плагин вне задачи, например, в начале вашего файла Rake, в каком-то коде инициализации? Если это так, то это произойдет, потому что плагины загружаются только при выполнении задачи (когда среда загружается).
Надеюсь, это поможет.
Это то, что у нас есть среда, передаваемая таким образом, вот почему это так странно. – nitecoder