Domanda

Ho appena aggiornato a Rails3 e quando ho installato il mio solito plug attachment_fu fallito. Così ho iniziato googling e anche se sono riuscito a trovare una versione Rails3 ci sembrava di essere molte più persone che parlano di graffetta con Rails3.

Quindi, in primo luogo quali sono i vantaggi di una graffetta?

C'è un supporto migliore per Rails3 con esso?

È stato utile?

Soluzione

Nessuno dei due. Usa carrierwave .

  

Per gestire gli upload di file, ho passato da Paperclip a CarrierWave. Mentre Paperclip ha (e continua) a servirmi bene in molte applicazioni con cui lavoro, ho davvero apprezzare l'approccio modulare che CarrierWave prende. E 'agnostica su quale dei client S3 popolari in uso, supportando sia AWS / s3 e right_aws. E 'anche ORM agnostico e non strettamente accoppiati ad Active Record. L'accoppiamento stretto di Paperclip ci ha causato qualche dolore al lavoro, e sto anche confuso sullo stato del supporto di Paperclip per AWS / s3 e right_aws. Così, ero felice di trovare questo nuovo progetto, e il manutentore Jonas Nicklas sembra essere un tizio estremamente attento e disponibile, il che è sempre una buona cosa. Il codice sembra grande, e ho avuto un momento facile lavorare con questa libreria finora. (Da: http://trevorturk.com / 2010/2/8 / kzak-an-open-source-web-based-jukebox / )

Più informazioni qui:

Altri suggerimenti

Ho fatto attachment_fu Rails3 compatibili.

https://github.com/mihael/attachment_fu

EDIT: ma si è rotto per alcuni utenti, e non sto sostenendo ulteriormente, in modo da accontentare sguardo in altre soluzioni, se non si vuole incidere da soli;)

Ho provato graffetta vs carrierwave vs attachment_fu con rails3.0.3 per un progetto cui sto lavorando.

Finora attachment_fu funziona molto bene come sempre, ma il codice ha ancora bisogno di un po 'di refactoring con il sistema di richiamata. Ha backend per cloudfiles, s3.

Paperclip è anche molto buono ed è molto facile da usare. La configurazione di base non mi ha lasciato caricare i filmati (ha dovuto aggiungere l'opzione: lamentoso => ??false), e non ha nomi di file sanitize il modo che mi aspettavo. Ecco come ho fatto:

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 ha backend s3, ma non ha un backend per cloudfiles incorporati. C'è un bivio graffetta per questo (google per graffetta-cloudfiles) che è costruito per rails2.3.5 (cercare GitHub per paperclip_demo).

Carrierwave sembra molto bello, con l'architettura disaccoppiato, ma non mi piace il fatto che non è così roba di eliminazione di aggiornamenti e distrugge di oggetti, lasciando un gruppo di file e directory sul disco. La configurazione di base carrierwave, inoltre, non mi ha lasciato caricare i filmati, anche se i nomi di file disinfetta bene. Non ho trovato una soluzione rapida per questo, ancora. Se si utilizza Mongoid e GridFS, carrierwave ha un supporto incorporato.

Infine, ho preso Paperclip per il mio progetto.

Ho creato un gioiello per attachment_fu se si desidera continuare ad usarlo in Rails 3.2 e oltre.

https://rubygems.org/gems/pothoven-attachment_fu

Dragonfly è veramente buono. Provalo, è in grado di gestire i file e le immagini.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top