uninitialized constant CarrierWave
Je suis le déploiement de ma première application rails à l'aide de passagers et de capistrano.
chaque chose est bien jusqu'à ce que j'ai été confronté à ce message d'erreur quand je tente de lancer l'application dans le navigateur.
Error message:
uninitialized constant CarrierWave
Exception class:
NameError
vous pouvez voir le message dans les détails à http://test.ajhezaty.com/
le site fonctionne parfaitement en local et CarrierWave téléchargement de l'image correctement.
J'ai essayé de redémarrer le serveur VPS par l'exécution de
sudo /etc/init.d/httpd2 restart
mais cela n'a pas corrigé le problème.
pour votre information, le gem installé sur le serveur
$ gem list | grep carrierwave
carrierwave (0.6.1)
OriginalL'auteur aaalsubaie | 2012-04-12
Vous devez vous connecter pour publier un commentaire.
Vous devez ajouter carrierwave à votre application.rb fichier comme ceci:
Cela a fonctionné pour moi dans la production à l'aide de nginx/licorne. N'oubliez pas de redémarrer votre licorne serveur.
Malheureusement, je n'ai aucune idée. J'ai juste besoin d'une solution rapidement.
il fonctionne, mais pourquoi?
Meilleur pari serait de demander sur Github. Je n'utilise que des Carrierwave, et je ne sais rien à ce sujet.
OriginalL'auteur KimJongIl
Vous pouvez avoir la gemme installé localement, mais assurez-vous que vous l'ajouter à votre Gemfile, bundle install via ssh, et au besoin les contrôleurs qui va l'utiliser.
En tout contrôleur qui utilise une gemme, vous devez spécifier à cette exigence. Ainsi, par exemple, si vous utilisez la CarrierWave, allez dans "photos" contrôleur, ou ce que vous appelé, et le type de besoin "carrierwave'. Cela garantit qu'il est appelé. Votre application fonctionne localement, car les gemmes sont installés au niveau de l'OS... c'est, ce n'est pas seulement un joyau pour les Rails, c'est un petit bijou pour tous de Ruby. Par conséquent, dans votre Gemfile, vous devez spécifier ce que les gemmes d'une application l'exige, ainsi que sur le déploiement, l'application collecte toutes les dépendances au niveau de l'OS (le serveur).
Juste parce que vous avez tapé "gem install carrierwave" ne signifie pas qu'il est installé sur le serveur distant. D'où le Gemfile, et bundle install sur le serveur distant.
J'ai fait ce que vous avez dit, mais toujours pas de chance
Même erreur? Vérifier vos journaux de production ( rails racine > log > de la production.le journal )... C'est là que les erreurs sont conservés, les mêmes trucs que vous voyez dans le navigateur en cours de développement. Laissez-moi savoir ce que le journal dit.
OriginalL'auteur DerektheDev