0

运行 Windows,ruby 1.9.2p290 (2011-07-09) [i386-mingw32],rails 3.2.11,在本地运行正常,但在 Heroku 上运行

处理请求时出现意外错误:没有要加载的文件

有问题的文件是“时间”和“日期”和“Yaml”

更改了应用程序代码

require 'Time'

require 'time'

这解决了问题。

怀疑是由于 Heroku 运行 JRuby 对“require”区分大小写可能与 http://jira.codehaus.org/browse/JRUBY-6076有关

4

1 回答 1

0

有问题的 JIRA 票证用于解析 Java 包名称,而不是 Ruby 库名称。

如果 MRI 位于区分大小写的文件系统上,则 MRI 也会以这种方式运行:

$ cat Hello.rb 
def foo
  "UPPER"
end
$ cat hello.rb 
def foo
  "lower"
end
$ ruby2.0 -v -I . -r hello -e 'p foo'
ruby 2.1.0dev (2013-04-01 trunk 40028) [x86_64-darwin12.3.0]
"lower"
$ ruby2.0 -v -I . -r Hello -e 'p foo'
ruby 2.1.0dev (2013-04-01 trunk 40028) [x86_64-darwin12.3.0]
"UPPER"

我的建议是不要假设底层文件系统不区分大小写。

于 2013-04-01T21:03:00.590 回答