2010-08-26 7 views
1

La mise en place d'un trombone pour utiliser S3 sur mon système de développement local était un jeu d'enfant. Cependant, je ne suis pas capable de le faire fonctionner sur Heroku.'No match matches' avec trombone et S3 sur Heroku

Les téléchargements de fichiers avec succès:

[paperclip] Saving attachments. 
[paperclip] saving photos/2/small.jpg 
[paperclip] saving photos/2/original.jpg 

Cependant, des vues qui tentent de créer un lien vers le téléchargement obtiendriez une erreur de routage:

ActionController::RoutingError (No route matches "/photos/small/missing.png" with {:method=>:get}): 

Remarquez comment il utilise « manque » pour le nom du fichier et utilise '.png' pour l'extension même si le fichier est un '.jpg'.

J'ai essayé de nombreuses combinaisons de: url et :path options avec has_attached_file selon les différents postes de blog et des tutoriels que j'ai trouvé (y compris les documents de Heroku), mais aucun ne semble fonctionner. Quelles sont les étapes correctes pour utiliser paperclip avec S3 sur Heroku?

Répondre

1

a trouvé le problème: nécessaire pour mettre à jour la base de données.

heroku rake:db:migrate 
heroku restart 

je l'avais fait ce que je pensais avoir accompli la même chose déjà: heroku rake db:schema:load, mais peut-être cela ne fonctionne pas ou quelque chose qui a mal tourné dans le processus. Quoi qu'il en soit, faire cela, tout en supprimant les appels à attr_accessor comme suggéré sur un autre blog, a résolu le problème.

0

Pouvez-vous coller le code de votre formulaire s'il vous plaît? Je suppose que vous avez oublié d'ajouter :html => {:multipart => true}) au formulaire_pour tag

+0

Merci de répondre, mais non, ce n'est pas la réponse. Mes formulaires sont correctement configurés, et comme je l'ai dit, tout fonctionne correctement sur mon système de développement. Le problème semble se produire uniquement avec Heroku. – eksatx

+0

ok, je vois. pouvez-vous confirmer si les images sont téléchargées ou non dans votre compartiment de production s3? Vous pouvez le faire en utilisant s3Fox (un addon firefox). En outre, utilisez-vous un fichier S3.yml ou config-vars? – stephenmurdoch

+0

J'ai installé S3Fox. Comment savoir si les images ont été téléchargées? J'utilise S3.yml. Je pense que ce problème spécifique est en fait causé par quelque chose que j'ai essayé afin de résoudre un problème différent. S'il vous plaît voir http://stackoverflow.com/questions/3580592/model-missing-required-attr-accessor-for-photo-file-name-when-uploading-with-pa pour plus de détails. – eksatx

1

Je viens d'avoir exactement le même problème. Ran bien en dev, les fichiers téléchargés à s3 dans prod mais ne montrerait pas l'URL pour les images téléchargées. Exécution

heroku restart 

a été corrigé. Pas besoin de lancer db: migrate (à moins, bien sûr, que vous ayez besoin de migrer la base de données).

Merci pour l'info!

Questions connexes