我想要一个位于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环境中的文件名。
答案 0 :(得分:0)
我收到“没有此类文件无法加载”错误,并发现我在require语句中的情况不正确
require_relative './place/Places.rb'
当实际文件名是places.rb
时
Windows不区分大小写,因此在Windows上可以正常工作