2

この質問にはすでに答えがあります。

助けが必要です :( さて、私はレーキタスクに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 '

それは手段です - 彼はこの入力を認識していませんでした。 ありがとうございます。

2 답변


6

[:arg1]でなければなりませんargs[:arg1](またはブロック引数として使用する名前はなんでも)。これがコードです:

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

使用法:

rake export[foo1]


  • それでもまだ動作しません。エラーが発生しました。レーキが中止されました。 NameError:未定義のローカル変数またはメソッド `args' main for:Objectありがとうございます。 - miss_M
  • 「動作しません」。デバッグには役に立ちません。あなたはどんなエラーを受けていますか? - Simone Carletti
  • 私が提供したコードをコピーしてよろしいですか。合格を忘れたようです|t, args|ブロックパラメータ - Simone Carletti
  • さて、今それが仕事だ!どうもありがとうございます! - miss_M

8

これを試して、また次の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]'


  • どうもありがとうございました!!!それは仕事です! - miss_M

リンクされた質問


関連する質問

最近の質問