无法根据传递给rake任务的参数加载文件

时间:2012-07-13 09:25:35

标签: ruby-on-rails-3 rake yaml

我无法根据传递给rake rask

的参数加载文件

我的代码

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文件。

1 个答案:

答案 0 :(得分:0)

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

您可以使用chomp删除换行符:

file = STDIN.gets.chomp