我正在开发一个小型的Ruby-on-rails应用程序。我正在使用'roo'gem打开excel文件。 但是在尝试打开文件时,rails会引发IO错误。它说文件不存在。 它在irb中工作正常。我的开发机器是windows。这是我的代码
file ="#{RAILS_ROOT}/public/data/import.xls"
file.gsub!("\\","/")
workbook = Excel.new(file)
感谢任何帮助
谢谢,
Abhilash
答案 0 :(得分:1)
在这里使用File
类是值得的,而不是创建路径和gsubbing文件分隔符。例如:
file = File.join(RAILS_ROOT, 'public', 'data', 'import.xls')
我很确定你不需要过多担心在Windows中使用反斜杠作为文件分隔符(我已经停止在Windows上进行开发,但是无法测试)。
然后,您可以在执行任何特定于roo的操作之前执行File.exists?(file)
来测试ruby是否认为文件存在。
另外,您是否以不同的用户身份运行rails应用和控制台?这可能会导致一个权限问题而另一个权限问题。