2013-04-16 65 views
2

我是回形針寶石的n00b,所以請原諒我,但我花了兩個小時的更好的一部分沒有進展(和我看過它的railscast):Paperclip :: AdapterRegistry :: NoHandlerError(找不到「」的處理程序)

我的Rails應用程序有一個回形針附件模型:

class Foo::Bar < ActiveRecord::Base 
    attr_protected :id 
    has_attached_file :mydocument 
end 

而且每當我試圖提交表單一個空白文件字段此附件,我得到以下錯誤:

Paperclip::AdapterRegistry::NoHandlerError: No handler found for "" 

我該怎麼辦? (我安裝了ImageMagick並在我的環境文件中指定了Paperclip.options[:command_path] = 'C:\Program Files\ImageMagick-6.8.4-Q16',並非我認爲在這種情況下應該有所作爲。)

我已經卸載並重新安裝了回形針。我已經重新啓動了我的電腦。我在同事的電腦上運行該應用程序,並且沒有得到該錯誤。但在我的機器上,我仍然遇到錯誤。

+0

你是否在'Foo :: Bar'上運行'mydocument'附件的遷移?如果您發佈了「Paperclip :: AdapterRegistry :: NoHandlerError」異常的回溯,我可以查看Paperclip的源代碼並找出錯誤的位置。 –

+0

很親切。是的,我確實運行了遷移。這是我的日誌:http://pastie.org/7621106 – JellicleCat

+0

你是否運行任何類型的自定義網址結構或任何東西?你是否與你的同事運行相同的數據庫?它可能類似於缺少'Phone','PhoneType'或'Carrier'。另外,它看起來像你在Windows上運行。你的同事是否也在運行Windows? –

回答

4

通過回形針源讀取後,它看起來像你正在運行到一個錯誤的呼叫跟蹤:

Foo::Bar.mydocument = document 
# calls 
Foo::Bar.attachment_for(:mydocument).assign(document) 
# calls 
file = Paperclip.io_adapters.for(document) 
# calls 
handler_for(document).new(document) 

它看起來像handler_for調用失敗,因爲目標是一個空字符串或爲空-string樣。

在您的控制器中,嘗試打印params對象以查看params[:foo_bar][:mydocument]中的內容。這可能會導致您更接近根本問題。事情可能是問題可能包括控制器和視圖控制器和模型

  • 一個搞砸form_tagform_for之間
  • 不同的屬性名稱之間

    • 不同的屬性名稱不正確的編碼集(嘗試:html => {:multipart => true})。
  • +0

    是的,它是一個空字符串。但我認爲回形針不應該嘗試處理空字符串,因爲如上所述,我的應用程序在我的同事的計算機上正常工作。 (而且,是的,我們傾向於遷移。)顯然,我的電腦設置有問題。 – JellicleCat

    +0

    視圖中的呈現形式是什麼樣的? –

    +0

    該網站沒有生效,所以我不能直接給你,但它是一個非常簡單的形式:幾個文本輸入,一個文件輸入。當你說'看起來像'時,你有什麼想法嗎? – JellicleCat

    相關問題