Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails RoR应用程序在本地运行正常,但在Heroku上运行时使用from/lib时出错_Ruby On Rails_Heroku - Fatal编程技术网

Ruby on rails RoR应用程序在本地运行正常,但在Heroku上运行时使用from/lib时出错

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

我的RoR应用程序在本地运行时工作正常,但在Heroku上运行时,它会出现以下错误:

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中正确加载模块的优秀文章:

/