Rails как запустить грабли - PullRequest
78 голосов
/ 13 апреля 2011

Как мне запустить этот файл граблей в терминале / консоли?

мой 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

Ответы [ 7 ]

108 голосов
/ 13 апреля 2011

Вы не должны запускать задачи Rake в консоли Rails, а вместо этого в терминале / командной строке, запустив

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
22 голосов
/ 13 апреля 2011
Rake::Task['reklamer:orville'].invoke

или

Rake::Task['reklamer:orville'].invoke(args)
20 голосов
/ 13 апреля 2011

Вы пробовали rake reklamer:iqmedier?

Мои пользовательские грабли находятся в каталоге lib, а не в lib / tasks.Не уверен, что это имеет значение.

7 голосов
/ 21 марта 2018

Иногда ваши грабли не загружаются в консоль, в этом случае вы можете попробовать следующие команды

require "rake"
YourApp::Application.load_tasks
Rake::Task["Namespace:task"].invoke
1 голос
/ 28 сентября 2015

В рельсах 4.2 вышеуказанные методы не сработали.

  1. Перейти к терминалу.
  2. Перейдите в каталог, в котором находится ваш файл rake.
  3. run rake task_name.
  4. В вышеприведенном случае запустите rake iqmedier - запустится только задача iqmedir.
  5. запустить rake euroads - запустит только задачу euroads.
  6. Чтобы запустить все задачи в этом файле, назначьте следующее в одном и том же файле и выполните rake all

    task :all => [:iqmedier, :euroads, :mikkelsen, :orville ] do #This will print all the tasks o/p on the screen 
    end
    
0 голосов
/ 14 февраля 2019

Если вы не уверены, как запустить задачу rake, сначала выясните, какие задачи у вас есть, и в ней также будут перечислены команды для запуска задач.

Запустите rake --tasks на терминале.

В нем будут перечислены задачи, подобные следующим:

rake gobble:dev:prime             
rake gobble:dev:reset_number_of_kits                                    
rake gobble:dev:scrub_prod_data

Затем вы можете запустить задачу с: rake gobble:dev:prime, как указано.

0 голосов
/ 13 апреля 2011

Вот очень хороший урок по запуску рейковых задач, который я нашел полезным.

http://jasonseifer.com/2010/04/06/rake-tutorial

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...