0

我想上傳一個文件與Carrierwave一種形式,但每次我跑,我會見了以下消息我的rails服務器:未初始化不斷 - 完全同意這個Rails中失去了

NameError在ListingsController#指數

未初始化的恆定信息:: ImageUpLoader

提取的源(圍繞線#2):

1. class Listings < ActiveRecord::Base 
2.   mount_uploader :image, ImageUpLoader 
3. end 

Rails.root:C:/網站/ redemo

這是我的錯誤日誌說什麼

Started GET "/listings/1/edit" for 127.0.0.1 at 2014-06-06 20:09:16 +0100 
Processing by ListingsController#edit as HTML 
Parameters: {"id"=>"1"} 
[1m[36mListing Load (0.0ms)[0m [1mSELECT "listings".* FROM "listings" WHERE  "listings"."id" = ? LIMIT 1[0m [["id", "1"]] 
Rendered listings/_form.html.erb (111.0ms) 
Rendered listings/edit.html.erb within layouts/application (121.0ms) 
Rendered layouts/_header.html.erb (0.0ms) 
Rendered layouts/_footer.html.erb (0.0ms) 
Completed 200 OK in 248ms (Views: 240.0ms | ActiveRecord: 0.0ms) 


Started PATCH "/listings/1" for 127.0.0.1 at 2014-06-06 20:09:20 +0100 
Processing by ListingsController#update as HTML 
Parameters: {"utf8"=>"✓", k 

[1分[35米(0.0ms)0米ROLLBACK TRANSACTION 完成500內部服務器錯誤在19ms

ArgumentError (wrong number of arguments (2 for 1)): 
    app/controllers/listings_controller.rb:45:in `block in update' 
    app/controllers/listings_controller.rb:44:in `update' 


Rendered C:/Ruby200/lib/ruby/gems/2.0.0/gems/actionpack- 4.0.0/lib/action_dispatch/middleware/templates/rescues/_source.erb (2.0ms) 
Rendered C:/Ruby200/lib/ruby/gems/2.0.0/gems/actionpack-4.0.0/lib/action_dispatch/middleware/templates/rescues/_trace.erb (3.0ms) 
Rendered C:/Ruby200/lib/ruby/gems/2.0.0/gems/actionpack-4.0.0/lib/action_dispatch/middleware/templates/rescues/_request_and_response.erb (2.0ms) 
Rendered C:/Ruby200/lib/ruby/gems/2.0.0/gems/actionpack-4.0.0/lib/action_dispatch/middleware/templates/rescues/diagnostics.erb within rescues/layout (146.0ms) 

我完全失去了這一個。有什麼建議嗎?

+2

我想'ImageUpLoader'應該是''用小寫的l' ImageUploader'。 –

+0

謝謝!這有助於那個錯誤 – user3714822

回答

2

從邏輯上講,你必須有如下定義CarrierWave Uploader類:

class ImageUploader < CarrierWave::Uploader::Base 
    ## .... 
end 

注意類名ImageUploaderl小寫

,但你安裝上載爲ImageUpLoader通知L資本),這是導致錯誤uninitialized constant Listings::ImageUpLoader

更新如下代碼:

class Listings < ActiveRecord::Base 
    mount_uploader :image, ImageUploader ## ImageUploader with "l" in lowercase 
end 
+0

謝謝你解釋!對此,我真的非常感激。 – user3714822

+0

很高興爲您提供幫助。 :) –

0

我認爲應該是;

class Listings < ActiveRecord::Base 
    mount_uploader :image, ImageUploader 
end 
+0

謝謝,這工作! – user3714822

+0

@ user3714822,您可以繼續並將其標記爲答案。 – Acacia

0

我認爲有兩個問題: 1) 查找控制器的更新方法內:應用程序/控制器/ listings_controller.rb(線44-45)。

檢查參數並確保您傳遞了預期的參數。

2)未初始化的常量列表:: ImageUpLoader:檢查模型中的名稱並將其與控制器的索引方法引用進行比較。

+0

謝謝你的建議。 1.我檢查了更新部分,並且它嚴格遵守我正在遵循的教程,並且它確實有效(除了上傳圖像) – user3714822

+0

2 - 我檢查並看到L爲大寫。謝謝。 – user3714822

相關問題