繁体   English   中英

RoR应用程序在本地运行良好,但是在Heroku上运行时使用来自/ lib的错误

[英]RoR app works fine locally, but errors when using a from /lib when run on Heroku

我的RoR应用程序在本地运行时运行良好,但是当我在Heroku上运行时,此行出错:

my_reader = Docreader.new(params[:doc])

错误:

NameError (uninitialized constant NotesController::Docreader):

Docreader.rb位于lib文件夹中

我尝试了heroku restart ,但是没有帮助。 我究竟做错了什么? 谢谢阅读。

可能的罪魁祸首是Docreader.rb的大写字母D 您需要确保将其命名为docreader.rb所有小写​​字母。 Heroku使用区分大小写的文件系统,因此混合大小写的文件将在OS X或Windows本地运行,但在Heroku上不行。

通常,不建议在Ruby on Rails的文件名中使用任何大写字母(并且小写也是Ruby中的事实上的标准),因为Rails的自动加载代码始终使用小写。

让我的模块在Heroku上运行时,我遇到了类似的问题。 除了@wuputah声明的自动加载命名约定外,我发现由于Rails在Heroku的生产环境中做出的线程安全假设,还必须使用模块代码(即使在我的production.rb文件中已将其注释掉)。 )在模块上调用“ include”之前,一旦我“需要”模块文件,一切就开始起作用。

请看这篇关于如何在Heroku中正确加载模块的优秀文章:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM