2011-07-21 104 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

事实证明,我们应该一直在检查文件名是否有效,而不是依赖于检测虚拟形象存在的通用运行时错误。