Question

Je viens de mis à niveau vers rails3 et quand j'ai installé mon plugin habituel attachment_fu échoué. Alors j'ai commencé googler et même si je ne parviens à trouver une version rails3 il semblait y avoir beaucoup plus de gens parler avec rails3 paperclip.

Alors, tout d'abord quels sont les paperclip avantages?

Y at-il un meilleur soutien pour rails3 avec elle?

Était-ce utile?

La solution

Ni. Utilisez carrierwave .

  

Pour gérer les téléchargements de fichiers, je suis passé de Paperclip à CarrierWave. Alors que Paperclip a (et continue) pour me servir dans de nombreuses applications avec lesquelles je travaille, j'apprécie vraiment l'approche modulaire qui prend CarrierWave. Il est agnostique à laquelle des clients populaires S3 que vous utilisez, prenant en charge les SSFE / s3 et right_aws. Il est également ORM agnostique et non couplé étroitement à Active Record. Le couplage serré de Paperclip nous a causé une douleur au travail, et je suis aussi confus au sujet de l'état du soutien de Paperclip pour les SSFE / s3 et right_aws. Donc, je suis heureux de trouver ce nouveau projet, et le mainteneur Jonas Nicklas semble être un mec extrêmement réactif et serviable, ce qui est toujours une bonne chose. Le code ressemble beaucoup, et je l'ai eu un temps facile de travailler avec cette bibliothèque jusqu'à présent. (À partir de: http://trevorturk.com / 2010/2/8 / kzak-an-open-source basé sur le Web-juke-box / )

Plus d'infos ici:

Autres conseils

J'ai fait attachment_fu rails3 compatible.

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

EDIT: mais il est cassé pour certains utilisateurs, et je ne maintient pas davantage, merci de regarder dans d'autres solutions, si vous ne voulez pas pirater vous-même;)

Je l'ai testé vs carrierwave vs paperclip attachment_fu avec rails3.0.3 pour un projet sur lequel je travaille.

Jusqu'à présent attachment_fu fonctionne très bien comme toujours, mais le code a encore besoin de refactoring avec le système de rappel. Il a pour backends CloudFiles, s3.

Paperclip est également très bon et est très facile à utiliser. La configuration de base ne m'a pas laissé télécharger des films (a dû ajouter l'option: pleurnichards => false), et il n'a pas aseptiser la façon dont les noms des fichiers que je m'y attendais. Voici comment je l'ai fait:

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 a backend s3, mais ne dispose pas d'un back-end pour CloudFiles intégré. Il y a une fourchette pour ce paperclip (google pour Paperclip-CloudFiles) qui est construit pour rails2.3.5 (recherche github pour paperclip_demo).

Carrierwave est très joli, avec l'architecture découplée, mais je ne aime pas le fait qu'il ne surchargez pas de suppression des mises à jour et détruit des objets, en laissant un tas de fichiers et des répertoires sur le disque. La configuration de base carrierwave aussi ne m'a pas laissé télécharger des films, mais il assainit bien les noms de fichiers. Je ne l'ai pas trouvé une solution rapide pour cela, encore. Si vous utilisez MongoId et GridFS, carrierwave a construit à l'appui.

Enfin, je pris Paperclip pour mon projet.

J'ai créé un bijou pour attachment_fu si vous souhaitez continuer à l'utiliser dans Rails 3.2 et au-delà.

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

Dragonfly est vraiment bon. Essayez, il peut gérer des fichiers et des images.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top