2016-01-04 31 views
1

我需要一些幫助:( 好,我需要1個參數傳遞給耙任務,我不是100%確定如何做到這一點,我已經嘗試了很多的事情,但沒有什麼實際工作 它看起來就像這樣:鋼軌 - 將參數傳遞給Rake任務

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

,然後「export_to_csv」的方法spoused得到ARG 當我在終端運行: 「耙出口1」或「耙出口[1]」 我不斷收到同樣的錯誤回答: '!耙中止 NoMethodError:未定義的方法`ID' 爲無:NilClass'

這意味着 - 他不承認這個輸入。 謝謝你們,

回答

5

[:arg1]必須是args[:arg1](或任何你用作塊參數的名字)。下面的代碼:

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

用法:

rake export[foo1] 
+0

它仍然不工作運行它, 我得到了一個錯誤: 耙中止! NameError:未定義的局部變量或方法'ARGS'主:對象 謝謝提前! –

+0

「它不起作用」對調試無用。你收到什麼錯誤? –

+0

你確定你複製了我提供給你的代碼嗎?看起來你忘了傳遞'| t,args |'塊參數。 –

5

試試這個,也對下面的網址看看。 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]' 
+0

謝謝soooo多!!!是工作! –