Ruby on rails RoR应用程序在本地运行正常,但在Heroku上运行时使用from/lib时出错
我的RoR应用程序在本地运行时工作正常,但在Heroku上运行时,它会出现以下错误:Ruby on rails RoR应用程序在本地运行正常,但在Heroku上运行时使用from/lib时出错,ruby-on-rails,heroku,Ruby On Rails,Heroku,我的RoR应用程序在本地运行时工作正常,但在Heroku上运行时,它会出现以下错误: my_reader = Docreader.new(params[:doc]) 错误: NameError (uninitialized constant NotesController::Docreader): Docreader.rb位于lib文件夹中 我已尝试重新启动heroku,但无效。我做错了什么?感谢阅读。罪魁祸首可能是Docreader.rb中的大写字母D。您需要确保它以所有小写字母命名为do
my_reader = Docreader.new(params[:doc])
错误:
NameError (uninitialized constant NotesController::Docreader):
Docreader.rb位于lib文件夹中
我已尝试重新启动heroku,但无效。我做错了什么?感谢阅读。罪魁祸首可能是
Docreader.rb
中的大写字母D
。您需要确保它以所有小写字母命名为docreader.rb
。Heroku使用区分大小写的文件系统,因此混合大小写文件可以在OS X或Windows本地工作,但不能在Heroku上工作
一般来说,RubyonRails不建议在文件名中使用任何大写字母(小写也是Ruby中的事实标准),因为Rails的自动加载代码总是使用小写。可能的罪魁祸首是
Docreader.rb
中的大写字母D
。您需要确保它以所有小写字母命名为docreader.rb
。Heroku使用区分大小写的文件系统,因此混合大小写文件可以在OS X或Windows本地工作,但不能在Heroku上工作
一般来说,Ruby on Rails不建议在文件名中使用任何大写字母(小写字母也是Ruby中事实上的标准),因为Rails的自动加载代码总是使用小写字母。我在让模块在Heroku上运行时遇到了类似的问题。除了@wuputah所述的自动加载命名约定之外,我发现由于Heroku上Rails的生产环境所做的线程安全假设(即使它在我的production.rb文件中被注释掉),模块代码必须是必需的,一切都开始起作用了 请阅读这篇关于如何在Heroku中正确加载模块的优秀文章:
/我在Heroku上运行模块时遇到了类似的问题。除了@wuputah所述的自动加载命名约定之外,我发现由于Heroku上Rails的生产环境所做的线程安全假设(即使它在我的production.rb文件中被注释掉),模块代码必须是必需的,一切都开始起作用了 请阅读这篇关于如何在Heroku中正确加载模块的优秀文章: /