2011-07-21 32 views
1

我顯然有一個巨大的問題,從插件版本的回形針切換到我的應用程序中的寶石版本。我的印象是,插件和指定版本的寶石之間應該沒有任何區別。不過,我並不認爲這是一個簡單的過渡。更新回形針從插件到寶石的問題

Rails的2.3.11和Ruby 1.8.7

我使用的插件版本是2.3.3版本,升級8月2日,2010年嘗試更新這同一版本的寶石基本上被殺我的所有測試都無法加載沒有加載附件的工廠模型。看起來,validate_attachment_content_type也試圖驗證附件的存在,並找不到它,所以一切都剛剛開始打破。同樣,使用插件也沒有問題,我們一直都沒有遇到任何問題。另一方面,這個問題似乎並沒有發生在2.3.4版之後。這是另一組問題。

基本上,從2.3.4所有版本和起來,我得到以下問題:

can't convert nil into String 
/home/joshua/.rvm/gems/[email protected]_upgrade/gems/paperclip-2.3.15/lib/paperclip/storage/s3.rb:163:in `extname' 
/home/joshua/.rvm/gems/[email protected]_upgrade/gems/paperclip-2.3.15/lib/paperclip/storage/s3.rb:163:in `to_file' 
/home/joshua/.rvm/gems/[email protected]_upgrade/gems/paperclip-2.3.15/lib/paperclip/attachment.rb:94:in `assign' 
/home/joshua/.rvm/gems/[email protected]_upgrade/gems/paperclip-2.3.15/lib/paperclip.rb:279:in `avatar=' 
/home/joshua/railscamp/app/app/models/organization.rb:311:in `copy_membership' 
在我所有的測試訪問我的組織模型

在這種情況下,明顯的違規代碼試圖克隆從一個組織到另一個組織的成員資格模型,其中*行是違規呼叫。

def copy_membership(membership) 
    m = membership.clone 
    u = m.user.clone 
    u.organization = self 
    m.organization = self 

    begin 
     m.avatar = membership.avatar   * 
    rescue RuntimeError 
     m.avatar = nil 
    end 

    m.user = u 
    m.save 
    m 
    end 

這對任何人都沒有任何意義嗎?爲什麼插件會工作,但同一版本的寶石只會破壞一切?

更新:我也似乎沒有任何可用的回形針耙任務。有任何想法嗎?

回答

1

事實證明,我們應該一直在檢查文件名是否有效,而不是依賴於檢測虛擬形象存在的通用運行時錯誤。