[英]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.