RAILS - 将参数传递给Rake任务

时间:2016-01-04 20:22:37

标签: ruby-on-rails ruby csv export rake-task

我需要一些帮助:( 好吧,我需要将1个参数传递给rake任务。而且我不是百分百肯定如何做到这一点,我已经尝试了很多东西,但实际上没有任何效果。 它看起来像这样:

 {  task :export, [:arg1]  => :environment do
      puts "Exporting..."
      Importer.export_to_csv([:arg1]).to_i
      puts "done."
    end }

然后'export_to_csv'方法spoused获取arg 当我在终端上跑时: 'rake export 1'或'rake export [1]' 我一直得到同样的错误答案: '耙子流产了! NoMethodError:nil的未定义方法`id':NilClass'

这意味着 - 他不认识这个输入。 谢谢大家,

2 个答案:

答案 0 :(得分:10)

试试这个,也看看下面的网址。 4 Ways to Pass Arguments to a Rake Task

task :export, [:arg1] => :environment do |t, args|
  puts "Exporting..."
  Importer.export_to_csv(args[:arg1].to_i)
  puts "done."
end

并使用

运行它
rake add\[1\]

#OR

rake 'export[1]'

答案 1 :(得分:9)

[:arg1]必须是args[:arg1](或者您用作块参数的任何名称)。这是代码:

task :export, [:arg1] => :environment do |t, args|
  puts "Exporting..."
  Importer.export_to_csv(args[:arg1])
  puts "done."
end

用法:

rake export[foo1]