This question already has an answer here:
i need some help :( well, i need to pass 1 parameter to a rake task. And I'm not 100% sure how to do this, I've tried a lot of things, but nothing actually works. it's look like this :
{ task :export, [:arg1] => :environment do
puts "Exporting..."
Importer.export_to_csv([:arg1]).to_i
puts "done."
end }
and then 'export_to_csv' method spoused to get the arg when I ran in my terminal : 'rake export 1' or 'rake export [1]' I keep getting the same error-answer: 'rake aborted! NoMethodError: undefined method `id' for nil:NilClass'
which is means - he didn't recognize this input. Thank u guys ahead,
[:arg1]
must be args[:arg1]
(or whatever name you use as block argument). Here's the code:
task :export, [:arg1] => :environment do |t, args|
puts "Exporting..."
Importer.export_to_csv(args[:arg1])
puts "done."
end
Usage:
rake export[foo1]
try this, also have a look on following url. 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
and run it using
rake add\[1\]
#OR
rake 'export[1]'
|t, args|
block parameters. - Simone Carletti