Рельсы, как выполнить команду rake
Как запустить этот файл rake в терминале/консоли?
my statistik.rake в lib/tasks
desc "Importer statistikker"
namespace :reklamer do
task :iqmedier => :environment do
...
end
task :euroads => :environment do
...
end
task :mikkelsen => :environment do
...
end
task :orville => :environment do
...
end
end
Ответы
Ответ 1
Вы не должны запускать задачи Rake в консоли Rails, но вместо этого в командной строке Terminal/Command, запустив
rake task_name
Если вы действительно должны запустить задачу Rake в Ruby, вы должны иметь возможность:
Rake::Task['task_name'].invoke
но обычно это делается только в задаче Rake для запуска другого.
Чтобы запустить несколько задач в одном пространстве имен с одной задачей, создайте следующую новую задачу в своем пространстве имен:
task :runall => [:iqmedier, :euroads, :mikkelsen, :orville ] do
# This will run after all those tasks have run
end
Ответ 2
Rake::Task['reklamer:orville'].invoke
или
Rake::Task['reklamer:orville'].invoke(args)
Ответ 3
Вы пробовали rake reklamer:iqmedier
?
Мои пользовательские задачи rake находятся в каталоге lib, а не в lib/tasks. Не уверен, что это важно.
Ответ 4
вот очень хороший учебник по запуску задач rake, которые я нашел полезными.
http://jasonseifer.com/2010/04/06/rake-tutorial
Ответ 5
В рельсах 4.2 вышеупомянутые методы не работали.
- Перейдите в терминал.
- Измените каталог в том месте, где присутствует ваш файл рейка.
- запустите rake task_name.
- В приведенном выше примере запустите rake iqmedier - запустите только задачу iqmedir.
- запустить rake euroads - будет выполняться только задача euroads.
-
Чтобы выполнить все задачи в этом файле, выполните следующие действия внутри
тот же файл и запустить rake all
task :all => [:iqmedier, :euroads, :mikkelsen, :orville ] do #This will print all the tasks o/p on the screen
end