J'ai ajouté Paperclip à mon application puis j'ai essayé de la déployer sur mon VPS en utilisant capistrano. Le déploiement se fait avec succès, mais lorsque j'essaie d'accéder à mon application sur le VPS, j'obtiens la page d'erreur Rails. Il n'y a pas d'information dans production.log
mais unicorn.log
présente l'erreur suivante :
E, [2013-06-25T19:44:07.372060 #21995] ERROR -- : uninitialized constant Paperclip (NameError)
/home/deployer/apps/arcsite/releases/20130625182331/config/initializers/paperclip.rb:1:in `<top (required)>'
Le fichier d'initialisation est paperclip.rb
et a le contenu suivant :
Paperclip.interpolates :zone do |attachment, style|
attachment.instance.zone_id
end
Il s'agit d'un interpolateur qui me permet d'utiliser la structure de dossier que je souhaite.
Si je retire le paperclip.rb
j'obtiens l'erreur suivante has_attachment
est indéfinie dans ma classe, ce qui donne l'impression que la fonction paperclip
n'est pas correctement chargé.
J'ai essayé de désinstaller/réinstaller la gemme, mais lorsque j'ai lancé gem uninstall paperclip
Il m'a indiqué que la gemme paperclip n'était pas installée. Lorsque j'ai lancé bundle show paperclip
il y avait bien un répertoire (j'utilise RVM), j'ai donc installé manuellement la gemme paperclip avec gem install paperclip
. J'obtiens toujours la même erreur.
Cette application fonctionne bien en développement sur le thin
serveur.
Ma configuration VPS :
- nginx
- licorne
- rvm
- capistrano
rails version : 3.2.13 version paperclip : 3.4.2