2

이 질문에는 이미 답변이 있습니다.

나는 도움이 필요해 :( 음, 갈퀴 작업에 1 개의 매개 변수를 전달해야합니다. 그리고 100 % 확신 할 수는 없지만 많은 일을 시도했지만 아무 것도 실제로 작동하지 않습니다. 그것은 다음과 같습니다.

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

그런 다음 'export_to_csv'메소드를 사용하여 arg를 얻습니다. 내 터미널에서 뛰었을 때 : 'rake export 1'또는 'rake export [1]' 나는 계속해서 동일한 오류 응답을 얻는다. '레이크가 중단 됐어! NoMethodError : 정의되지 않은 메소드 'id'for nil : NilClass '

이것은 의미입니다. 그는이 입력을 인식하지 못했습니다. 당신들 앞두고 감사합니다,

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 & # 39; for main : Object 미리 감사드립니다! - miss_M
  • & quot; 작동하지 않습니다 & quot; 디버깅에는 유용하지 않습니다. 어떤 오류가 발생합니까? - 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]'


  • 많이 soooo 고마워요! 그것의 작품! - miss_M

연결된 질문


관련된 질문

최근 질문