2017-05-16 44 views
3

在Hartl Rails教程章節13.4.1 Basic image upload中,我們爲圖片上傳添加了carrierwave gem。爲什麼carrierwave導致NameError:未初始化的常量Micropost :: PictureUploader錯誤?

但是,我不停地生成上傳並添加遷移到微觀柱模型後得到在我的測試此錯誤:

NameError: uninitialized constant Micropost::PictureUploader

周圍的Googling我能解決這個問題,加入這之後我environments.rb

require 'carrierwave/orm/activerecord'

但我覺得我做錯了什麼,因爲哈特爾沒有做到這一點,他在承擔13.4章節的結尾。 1重新啓動服務器後應該傳遞測試。

我做錯了嗎?

UPDATE:

加入這一行我environments.rb文件,我的測試通過後。然後一旦他們通過,我就能夠移除那條線,測試繼續通過。這就像一次初始化所需的常量。

我會說在第一次運行測試之前,我忘記運行rails db:migrate,但是我繼續丟棄測試數據庫,重新創建測試數據庫並運行遷移,重新啓動服務器,但沒有修復它。

對於哪裏出了問題仍然感到困惑。

+1

我的猜測是,有時重新啓動rails server是不夠的,有時你需要停止spring preloader:在命令行嘗試'spring stop'並告訴我們是否有幫助。 – BoraMa

+0

我覺得這可能是問題所在。請注意我的更新。我想我是因爲忘記運行rails db而導致它的:在運行測試之前進行遷移。然後,在我的environments.rb文件中添加'require'carrierwave/orm/activerecord'後,測試通過。從我的environments.rb文件中刪除'require'carrierwave/orm/activerecord'後,它們仍然通過。仍然不知道是什麼導致了這一點,這是我的問題,但可能無法在這一點上找出答案。 –

+1

@BoraMa我遇到了這個完全相同的問題。 「鐵軌測試」給了我同樣的問題。我做了「春天停止」,然後「軌道測試」,它是固定的。 – user782220

回答

0

這有什麼更新?我遇到了同樣的問題,並通過添加解決方案

require 'carrierwave/orm/activerecord'

to my environments.rb。

相關問題