2012-07-13 135 views
0

我无法基于传递给耙拉斯克参数来加载文件PARAMATERS加载文件无法根据传递给耙任务

我的代码

task :update_s =>:environment do 
puts 'enter file name for status' 
file=STDIN.gets 
file="config/status/#{file}" 
license_status=YAML.load_file(file) 
end 

传递的参数是abc.yml但我得到一个错误

No such file or directory - config/status/abc.yml 

,但如果我硬编码的文件名(如下代码),它的工作原理

task :update_s =>:environment do 

license_status=YAML.load_file("config/status/abc.yml") 

end 

我已经尝试过几个没有工作的组合。有没有一种方法可以根据传递给rake任务的参数来加载yml文件。

回答

0

这是因为gets返回换行符,所以file实际上是"config/status/abc.yml\n"

您可以chomp删除换行符:

file = STDIN.gets.chomp 
+0

谢谢您的回答。这是我愚蠢的错误。 – 2012-07-13 09:55:27