如何在RubyMine 3.0中将参数传递给rake任务?

时间:2011-02-27 18:38:19

标签: ruby rake rubymine

情况

我有一个类似于

的rake任务
desc "A rake Task"
task :give_me_gold, [:quantity,:quality] => :environment do |task, args|
 ....
end

我从你输入的命令行知道

rake give_me_gold[10,24] 

将参数传递给rake任务。但是,当RubyMine运行任务时,它会像这样运行:

rake give_me_gold[quantity,quality] --trace 10,24

重现的步骤

  1. 创建一个带参数的rake任务。
  2. 让RubyMine安装3.0版
  3. 从RubyMine,点击工具 - > 运行佣金任务
  4. 输入您的佣金任务名称。它应显示为“任务[选项,选项]”并按Enter键
  5. 将显示一个对话框并询问参数。填写并按Enter
  6. 观察RubyMine运行的命令。
  7. 回到我的问题

    如何在RubyMine 3.0中将参数传递给rake任务?

    感谢您抽出宝贵时间查看此问题

3 个答案:

答案 0 :(得分:2)

这是RubyMine中的一个错误。请参阅jetbrains.net上的Issue #8527

答案 1 :(得分:1)

task :give_me_gold do
  quantity = ENV['quantity']
  quality  = ENV['quality']
  puts "quantity: #{quantity}, quality: #{quality}"
end 

rake give_me_gold quantity=10 quality=24
#=> quantity: 10, quality: 24

<强> UPD

task :give_me_gold, :quantity, :quality do |t, args|
  puts "Args were: #{args}"
  quantity = args['quantity']
  quality  = args['quality']
  puts "quantity: #{quantity}, quality: #{quality}"
end

rake give_me_gold[10,24]
#=> quantity: 10, quality: 24

答案 2 :(得分:0)

将输入与环境一起传递的好方法是:

**任务:上传,[:路径] =&gt; [:environment] do | t,args |

puts args
YOUR_MODEL.method(args)

端 **