2013-01-22 23 views
2

我在這裏看到過類似的問題,無法弄清楚我剛剛開始使用ror開發的答案。我有一個耙子任務:如何將參數傳遞給我在ruby中的耙子任務

namespace:generate do 
    desc "Export to txt" 
    task :txt => :environment do |t, args| 
     puts "testing #{args}" 
    end 
end 

當我做這個命令行:

rake generate:txt 

我得到testing {}

當我嘗試注入價值這樣一個說法:

rake generate:txt[testvalue]

rake generate:txt testvalue 

第一個沒有任何相同的輸出testing {}第二個我得到一個錯誤。那麼,我以哪種方式調用命令,以便使用某些值填充args?

回答

1

IIRC,你必須明確地聲明參數。

task :environment do 
    puts "setting up env" 
end 

namespace :generate do 
    desc "Export to txt" 
    task :txt, [:filename] => :environment do |t, args| 
    puts "testing #{args}" 
    end 
end 

然後

% rake generate:txt['foo'] 
setting up env 
testing {:filename=>"foo"} 
1
namespace:generate do 
    desc "Export to txt" 
    task :txt, [:arg1] => :environment do |t, args| 
     puts "testing #{args[:arg1]}" 
    end 
end 

rake generate:csv arg1="value"