この質問にはすでに答えがあります。
助けが必要です :( さて、私はレーキタスクに1つのパラメータを渡す必要があります。そして、私はこれを行う方法が100%わからない、私はたくさんのことを試したが、実際には何も働かない。 それはこのように見えます:
{ task :export, [:arg1] => :environment do
puts "Exporting..."
Importer.export_to_csv([:arg1]).to_i
puts "done."
end }
そして 'export_to_csv'メソッドは引数を取得するために吐き出しました 私が自分のターミナルで走ったとき: 'rake export 1'または 'rake export [1]' 私は同じエラー答えを得続けます: '熊手は中止されました! NoMethodError:nil:NilClassに対する未定義のメソッド `id '
それは手段です - 彼はこの入力を認識していませんでした。 ありがとうございます。
[:arg1]
でなければなりませんargs[:arg1]
(またはブロック引数として使用する名前はなんでも)。これがコードです:
task :export, [:arg1] => :environment do |t, args|
puts "Exporting..."
Importer.export_to_csv(args[:arg1])
puts "done."
end
使用法:
rake export[foo1]
これを試して、また次のURLを見てください。レーキタスクに引数を渡す4つの方法
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]'
|t, args|
ブロックパラメータ - Simone Carletti