为什么在生产(Heroku)和Rails的开发环境中要求加载不同?

时间:2012-12-03 09:39:33

标签: ruby-on-rails ruby-on-rails-3 heroku

我想要一个位于lib中的文件(在我的Rails应用程序中)。

在开发过程中,这条线路没有任何问题。

require "km"

但是,在Heroku中,我收到“没有这样的文件加载”错误。

通过Heroku控制台,我在指定文件路径方面尝试了许多变体。例如:

require "lib/km"
require "./lib/km.rb"

等等。这是基于这些问题的答案,这些问题表明问题是指定文件的路径。

Rails, Heroku does not load my lib

Heroku console not loading file in /lib?

我也尝试过添加此处建议的自动加载线,这似乎无法解决问题。

config.autoload_paths += Dir["#{config.root}/lib/**/"]

http://www.williambharding.com/blog/technology/rails-3-autoload-modules-and-classes-in-production/

如何告诉Rails找到lib文件?为什么开发与生产中的需求行为存在差异?

更新:

这个问题与git有关。原始文件名是“KM.rb”,后来改为“km.rb”。但是,git没有收到案例更改,所以改变从未被推到Heroku环境中。

关键步骤是使用Heroku控制台中的Ruby Dir命令调查文件结构并确认Heroku环境中的文件名。

1 个答案:

答案 0 :(得分:0)

我收到“没有此类文件无法加载”错误,并发现我在require语句中的情况不正确

  require_relative './place/Places.rb'

当实际文件名是places.rb时 Windows不区分大小写,因此在Windows上可以正常工作