Как передать параметр в задачу rake, которая вызывается с помощью Rake :: Task - PullRequest
5 голосов
/ 24 февраля 2012

Вот мое задание по рейку

task :lab => :enviroment do 
  Rake::Task["db:rollback"].invoke('STEP=5')
end

Это не то, что я хочу. То, что я хочу, это

rake db:rollback STEP=5

Я использую Rails 3.2.1 на ruby ​​1.9.2.

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

rake lab

Реальный случай намного сложнее, но это - jist.

Ответы [ 3 ]

4 голосов
/ 09 июня 2012
task :lab => :enviroment do 
  ENV['STEP'] ||= 5
  Rake::Task["db:rollback"].invoke
end
0 голосов
/ 24 февраля 2012

Параметры можно передать в rake, указав пары ключ / значение в команде rake:

rake options:show opt1=value1

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

namespace :options do

  desc "Show how to read in command line options"
  task :show do
    p "option1 is #{ENV['opt1']}"
  end

end
0 голосов
/ 24 февраля 2012

Передача этого значения в качестве переменной окружения может быть вашим лучшим выбором. Попробуйте:

task :lab => :enviroment do 
  Rake::Task["db:rollback"].invoke(ENV['STEP'])
end

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