rails3にアップグレードしたばかりですが、通常のattachment_fuプラグインをインストールすると失敗しました。それで私はそれをグーグルで検索し始めました、そして私はなんとかrails3バージョンを見つけることができましたが、rails3でペーパークリップについて話している人がもっとたくさんいるようでした。
では、まず、ペーパークリップの利点は何ですか?
それでrails3のより良いサポートはありますか?
rails3にアップグレードしたばかりですが、通常のattachment_fuプラグインをインストールすると失敗しました。それで私はそれをグーグルで検索し始めました、そして私はなんとかrails3バージョンを見つけることができましたが、rails3でペーパークリップについて話している人がもっとたくさんいるようでした。
では、まず、ペーパークリップの利点は何ですか?
それでrails3のより良いサポートはありますか?
ない。キャリアウェーブを使用します。
ファイルのアップロードを処理するために、PaperclipからCarrierWaveに切り替えました。Paperclipは、私が使用する多くのアプリケーションでうまく機能してきましたが(そして継続して)、CarrierWaveが採用しているモジュラーアプローチに本当に感謝しています。どちらの人気のあるS3クライアントを使用するかは不明であり、aws/s3とright_awsの両方をサポートします。また、ORMに依存せず、ActiveRecordと緊密に結合されていません。Paperclipの緊密な結合により、作業中に多少の不満が生じました。また、Paperclipによるaws/s3とright_awsのサポートの状態についても混乱しています。それで、この新しいプロジェクトを見つけてうれしく思いました。メンテナのJonas Nicklasは、非常に反応が良く、親切な人物のようです。これは常に良いことです。コードは素晴らしく見えます、そして私はこれまでこのライブラリで簡単に作業することができました。(から:http://trevorturk.com/2010/2/8/kzak-an-open-source-web-based-jukebox/)
詳細はこちら:
attachment_furails3と互換性を持たせました。
https://github.com/mihael/attachment_fuを参照してください
編集:しかし、それは一部のユーザーにとっては壊れており、私はそれをさらに維持していないので、自分でハックしたくない場合は、他の解決策を調べてください;)
作業中のプロジェクトで、rails3.0.3を使用してペーパークリップと搬送波とattachment_fuをテストしました。
これまでのところ、 attachment_fuはいつものようにうまく機能しますが、コードはコールバックシステムでリファクタリングする必要があります。クラウドファイルs3のバックエンドがあります。
ペーパークリップも非常に優れており、非常に使いやすいです。基本的な設定では、映画をアップロードできませんでした(オプション:whiny => falseを追加する必要がありました)。また、ファイル名を期待どおりにサニタイズしませんでした。これは私がそれをした方法です:
class Asset < ActiveRecord::Base
has_attached_file :file, :styles => { :small => "300x300>", :thumb => "50x50>" }, :whiny => false
before_create :sanitize_file_name
private
def sanitize_file_name
self.file.instance_write( :file_name, file_file_name.gsub(/[^A-Za-z0-9\.\-]/, '_'))
end
end
Paperclipにはs3バックエンドがありますが、cloudfilesのバックエンドは組み込まれていません。rails2.3.5用に構築されたそのためのペーパークリップフォーク(paperclip-cloudfilesのグーグル)があります(paperclip_demoのgithubを検索してください)。
Carrierwaveは、分離されたアーキテクチャで非常に見栄えがしますが、更新時にコンテンツを削除せず、オブジェクトを破棄して、ディスク上に多数のファイルとディレクトリを残すという事実は好きではありません。基本的なcarrierwaveセットアップでも、ファイル名を適切にサニタイズしますが、ムービーをアップロードできませんでした。これに対する簡単な修正はまだ見つかりませんでした。MongoidとGridFSを使用している場合、carrierwaveにはサポートが組み込まれています。
最後に、プロジェクトにペーパークリップを使用しました。
Rails 3.2以降で引き続き使用したい場合は、attachment_fu用のgemを作成しました。
トンボは本当にいいです。試してみてください。ファイルや画像を処理できます。