2010-09-05 56 views
0

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

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

任何帮助表示赞赏 感谢,
Abhilash

回答

1

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

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

我敢肯定,你不必担心,虽然在Windows(我已经停止开发Windows,但这样无法测试)用反斜杠文件分隔符太多。

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

另外,你是否以不同的用户运行你的rails应用程序和控制台?这可能会导致一些权限问题,而不是其他问题。