2011-07-21 12 views
1

私は明らかに、プラグイン版のPaperclipからアプリケーションの宝石版への切り替えに大きな問題を抱えています。プラグインと指定されたバージョンの宝石との間に違いはないはずです。しかし、私はこれを簡単な移行とは見ていません。プラグインから宝石にPaperclipを更新する際の問題

Railsの2.3.11、Rubyの1.8.7

私が使用していますプラグインのバージョンは2.3.3で、基本的に殺された同じバージョンの宝石にこれを更新しようとすると8月2日、2010年にアップグレードされました私のすべてのテストは、添付ファイルがロードされていない工場モデルをロードすることができません。 validate_attachment_content_typeも添付ファイルの存在を検証しようとしていて、見つからなかったため、すべてが破損し始めました。繰り返しますが、プラグインに問題はなく、私たちがこれを使用しているすべての時間に問題はありませんでした。一方、この問題はバージョン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]rclip_upgrade/gems/paperclip-2.3.15/lib/paperclip.rb:279:in `avatar=' 
/home/joshua/railscamp/app/app/models/organization.rb:311:in `copy_membership' 

は基本的に、2.3.4からのすべてのバージョンで、最大私は、以下の問題を取得します。

この場合、明らかに違反しているコードは、ある組織から別の組織にメンバーシップモデルを複製しようとしています。*行は違反呼び出しです。

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

アバターの存在を検出するための一般的なランタイムエラーによらず、ファイル名が有効かどうかを確認していたはずです。

関連する問題