2010-12-14 18 views
12

Ich habe gerade auf Rails3 aktualisiert und als ich meine üblichen Attachment_fu Plugin installiert fehlgeschlagen. Also fing ich an zu googeln und obwohl ich es schaffte, eine rails3-Version zu finden, schienen noch viel mehr Leute über Büroklammer mit rails3 zu reden.Attachment_fu oder Paperclip für Rails3

Also, was sind zum einen die Vorteile der Büroklammer?

Gibt es eine bessere Unterstützung für rails3 damit?

Antwort

12

Weder. Verwenden Sie carrierwave.

To handle the file uploads, I’ve switched from Paperclip to CarrierWave. While Paperclip has (and continues) to serve me well in many applications I work with, I really appreciate the modular approach that CarrierWave takes. It’s agnostic as to which of the popular S3 clients you use, supporting both aws/s3 and right_aws. It’s also ORM agnostic and not tightly coupled to Active Record. The tight coupling of Paperclip has caused us some grief at work, and I’m also confused about the state of Paperclip’s support for aws/s3 and right_aws. So, I was happy to find this new project, and the maintainer Jonas Nicklas seems to be an extremely responsive and helpful dude, which is always good thing. The code looks great, and I’ve had an easy time working with this library so far. (from: http://trevorturk.com/2010/2/8/kzak-an-open-source-web-based-jukebox/)

Mehr Infos hier:

+0

Ok Dank für die Beratung in sie nun auf der Suche, sieht sehr interessant. –

+0

Ja, Carrierwave ist großartig und verwendet jetzt die Fog-Bibliothek für die S3-Unterstützung. Ich kann es nur wärmstens empfehlen.Sie können auch den Paperclip-Kompatibilitätsmodus verwenden. Wenn Sie also jederzeit zu Paperclip wechseln möchten, ist das ganz einfach. –

7

Ich habe attachment_fu rails3 kompatibel.

Siehe https://github.com/mihael/attachment_fu

EDIT: aber es ist für einige Nutzer gebrochen, und ich bin die Aufrechterhaltung es nicht weiter, so schauen Sie bitte in andere Lösungen, wenn Sie es nicht wollen, um sich zu hacken;)

Ich habe Paperclip vs carrierwave vs attachment_fu mit rails3.0.3 für ein Projekt getestet, an dem ich gerade arbeite.

Bis jetzt attachment_fu funktioniert sehr gut wie immer, aber der Code benötigt noch einige Refactoring mit dem Callback-System. Es hat Backends für cloudfiles, s3.

Büroklammer ist auch sehr gut und ist sehr einfach zu bedienen. Das grundlegende Setup ließ mich keine Filme hochladen (musste die Option hinzufügen: whiny => false), und es hat die Dateinamen nicht so geläutert, wie ich es erwartet hatte. Dies ist, wie ich es tat:

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 Backend hat, aber nicht über einen Backend für cloudfiles eingebaut. Dafür gibt es eine Büroklammergabel (Google for Paperclip-cloudfiles), die für rails2.3.5 (suche github für paperclip_demo) gebaut wurde.

Carrierwave sieht sehr nett aus, mit der entkoppelten Architektur, aber ich mag nicht die Tatsache, dass es Sachen auf Updates nicht löscht und Objekte zerstört, eine Menge von Dateien und Verzeichnissen auf der Festplatte belassen. Das grundlegende carrierwave-Setup ließ mich auch keine Filme hochladen, obwohl es die Dateinamen gut säuberte. Ich habe dafür noch keine schnelle Lösung gefunden. Wenn Sie Mongoid und GridFS verwenden, hat carrierwave Unterstützung eingebaut.

Schließlich nahm ich Büroklammer für mein Projekt.

+1

Prost, aber ich habe versucht, Ihre Gabel und bekam einen Fehler: Fehler bei der fehlersicheren Antwort: ActionView :: Template :: Error. ruby-1.9.2-p180/gems/activesupport-3.0.5/lib/aktiver_support/whiny_nil.rb: 48: in 'method_missing ' –

0

Dragonfly ist wirklich gut. Probieren Sie es aus, es kann Dateien und Bilder verarbeiten.

+0

Nicht sicher, sehe ich den Vorteil gegenüber anderen Systemen? Ich habe Carrierwave benutzt und scheint sehr gut zu funktionieren. Ich mag die Trennung des Codes von den Modellen. –