在Ruby-on-rails中使用roo时,文件不存在

时间:2010-09-05 12:04:43

标签: ruby-on-rails

我正在开发一个小型的Ruby-on-rails应用程序。我正在使用'roo'gem打开excel文件。 但是在尝试打开文件时,rails会引发IO错误。它说文件不存在。 它在irb中工作正常。我的开发机器是windows。这是我的代码

file ="#{RAILS_ROOT}/public/data/import.xls"
file.gsub!("\\","/")
workbook = Excel.new(file)

感谢任何帮助 谢谢,
Abhilash

1 个答案:

答案 0 :(得分:1)

在这里使用File类是值得的,而不是创建路径和gsubbing文件分隔符。例如:

file = File.join(RAILS_ROOT, 'public', 'data', 'import.xls')

我很确定你不需要过多担心在Windows中使用反斜杠作为文件分隔符(我已经停止在Windows上进行开发,但是无法测试)。

然后,您可以在执行任何特定于roo的操作之前执行File.exists?(file)来测试ruby是否认为文件存在。

另外,您是否以不同的用户身份运行rails应用和控制台?这可能会导致一个权限问题而另一个权限问题。