52 votes

Rails 3 trombone vs carrierwave vs libellule vs attachment_fu

Je suis en train de travailler sur la mise à niveau des Rails 2.3.11, Ruby 1.9.2 app Rails 3.0.10, et attachment_fu ne fonctionne plus.

Je suis à la recherche d'évolution de trombone, carrierwave, ou libellule pour l'upload de fichiers, ou peut-être un de Rails 3, compatible, maintenu version de attachment_fu.

Laquelle de ces options serait la meilleure à utiliser en termes de performance, comment bien entretenu, il est, comment il est facile de mettre à niveau à partir de attachment_fu, et peut-être est-ce que ça va être Rails 3.1 compatible? Quels sont les principaux points forts et les inconvénients de chacun?

Aucune information serait appréciée.

42voto

Robin Points 10884

J'ai utilisé à la fois en forme de Trombone et Carrierwave, et si j'étais vous, j'irais pour Carrierwave. C'est beaucoup plus souple. J'aime aussi le fait qu'il ne marche pas encombrer vos modèles avec la configuration. Vous pouvez définir uploader des classes à la place. Il vous permet de réutiliser facilement, étendre etc votre téléchargement de la configuration.

Avez-vous regarder le Carrierwave railscast? http://railscasts.com/episodes/253-carrierwave-file-uploads

Trombone n'est pas un mauvais choix, bien que, il est le "meilleur" choix pour une longue période de temps. Mais Carrierwave semble définitivement comme la nouvelle génération ;)

40voto

David Points 5988

J'ai utilisé CarrierWave et après quelques heures de frustration, je suis passer à un Trombone.

Voici les problèmes que j'ai vu avec CarrierWave:

  • Vous ne pouvez pas valider la taille du fichier. Il y a un article de wiki qui explique comment le faire, mais il ne fonctionne pas.
  • L'intégrité des validations ne fonctionnent pas lors de l'utilisation de MiniMagick (très pratique si vous êtes préoccupé par l'utilisation de la RAM). Vous pouvez télécharger une image endommagée fichier et CarrierWave provoquera une erreur à la première, mais la prochaine fois va l'avaler.
  • Vous ne pouvez pas supprimer le fichier d'origine. Vous pouvez redimensionner, compresser, etc. Il y a un article de wiki expliquant comment le faire, mais encore une fois il ne fonctionne pas.
  • Cela dépend des bibliothèques externes tels que RMagick ou MiniMagick. Trombone travaille directement avec l' convert de la ligne de commande (ImageMagick). Donc, si vous avez des problèmes avec Minimagick (j'ai eu), vous allez perdre des heures plongée dans les recherches Google. Les deux RMagick et Minimagick sont abandonnés au moment d'écrire ces lignes (j'ai contacté l'auteur de Minimagic, pas de réponse).
  • Il a besoin de certains fichiers de configuration. Ceci est considéré comme un avantage, mais je n'aime pas le seul, les fichiers de configuration autour de mon projet juste pour un bijou. Configuration dans le modèle semble plus naturel pour moi. C'est une question de goût personnel de toute façon.
  • Si vous trouvez un bug et de le signaler, l'équipe de dev est vraiment absent et occupé. Ils vont vous dire de corriger les bugs vous-même. Il semble comme un projet personnel qui est améliorée dans le temps libre. Pour moi il n'est pas valide pour un projet professionnel avec des délais.

3voto

montrealmike Points 3795

Je me demanderais:

  • Est-ce que je changerai souvent la taille de l'image? Exemple: si vous souhaitez laisser vos utilisateurs modifier la taille de leurs images (ou votre besoin de flexibilité en taille pour une autre raison), ou un développement très rapide.

Oui: libellule

Non: Carrierwave ou Paperclip

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by: