J'apprends Rails 4.1.5
J'ai eu cette erreur:
2.1.1 :008 > Article
NameError: uninitialized constant Article::ImageUploader
from /Volumes/disk0s4/www/Rails/blog/app/models/article.rb:4:in `<class:Article>'
from /Volumes/disk0s4/www/Rails/blog/app/models/article.rb:1:in `<top (required)>'
from (irb):8
from /Users/didin/.rvm/gems/Ruby-2.1.1/gems/railties-4.1.5/lib/Rails/commands/console.rb:90:in `start'
from /Users/didin/.rvm/gems/Ruby-2.1.1/gems/railties-4.1.5/lib/Rails/commands/console.rb:9:in `start'
from /Users/didin/.rvm/gems/Ruby-2.1.1/gems/railties-4.1.5/lib/Rails/commands/commands_tasks.rb:69:in `console'
from /Users/didin/.rvm/gems/Ruby-2.1.1/gems/railties-4.1.5/lib/Rails/commands/commands_tasks.rb:40:in `run_command!'
from /Users/didin/.rvm/gems/Ruby-2.1.1/gems/railties-4.1.5/lib/Rails/commands.rb:17:in `<top (required)>'
from /Volumes/disk0s4/www/Rails/blog/bin/Rails:8:in `<top (required)>'
from /Users/didin/.rvm/rubies/Ruby-2.1.1/lib/Ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /Users/didin/.rvm/rubies/Ruby-2.1.1/lib/Ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from -e:1:in `<main>'
mon fichier: article.rb
class Article < ActiveRecord::Base
validates_presence_of :title, :body
belongs_to :user
mount_uploader :image, ImageUploader
end
J'ai eu une erreur lors de l'exécution de Rails console
lorsque j'écris un mot ' Article ' sur la console, cela soulève une erreur ci-dessus, mais il fonctionne correctement lorsque cette ligne mount_uploader :image, ImageUploader
dans le fichier article.rb est supprimée.
lorsque cette ligne est restaurée, l'erreur se reproduit. il semble donc que l'erreur soit due à cette ligne, mais je ne suis pas sûr.
n'importe qui peut résoudre ce problème, s'il vous plaît ...
merci d'avoir lu et répondu :-)
Je sais que nous avons quelques mois de retard, mais je suis tombé sur ce problème moi-même. Ma solution était de coller
nécessite 'carrierwave/orm/activerecord'
dans le fichier config/environment.rb. Il suffit de l'ajouter à la fin.
Mon Env: Ruby 2.1.2p95; Rails 4.1.7; Carrierwave-0.10.0
J'ai ajouté ceci à application.rb
require 'carrierwave'
require 'carrierwave/orm/activerecord'
Rails 4.2.0, Ruby 2.2.2, Carrierwave 0.10.0
Je vais le mettre ici, juste au cas où ..
SI vous utilisez spring
gem, vous devez le "redémarrer" en changeant config/application.rb
ou fermer et ouvrir le terminal, ou: $ bin/spring stop
Vous pouvez consulter la durée de vie de ses processus ici (défilement vers la droite):
$ ps aux | grep spring
alexey 55936 0.0 0.9 2645908 78440 ?? Ss Thu06PM 0:13.17 spring app | myapp | started 26 hours ago | development mode
alexey 81963 0.0 0.0 2481764 1608 ?? S Sat11PM 0:01.91 spring server | myapp | started 141 hours ago
Et tuez-le si nécessaire.
Plus d'infos sur: https://github.com/Rails/spring
Utilisez-vous le printemps?
J'ai deux fenêtres de terminal, une pour le serveur, l'autre pour la console.
Après avoir redémarré mon serveur et entré à nouveau dans la console, l'erreur a disparu.
Et je n'ai ajouté aucune ligne dans application.rb
Rails 4.2.4, Ruby 2.3.0, Carrierwave 0.10.0 a2c93fe
Je suppose que vous utilisez la pierre précieuse CarrierWave pour le téléchargement de fichiers. Avez-vous vérifié qu'il était correctement installé? Vous pouvez lancer la commande pour vérifier:
bundle show carrierwave
Dans mon cas, le kit est installé sur un autre terminal sur lequel j'ai exécuté la console Rails. HTH!
Autre astuce: ouvrez le fichier téléchargé qui vient d'être généré. Assurez-vous que le nom de la classe de téléverseur correspond au nom de la classe que vous avez ajoutée dans votre modèle.
Si une erreur apparaît dans les spécifications de l'application Rails, il se peut que vous manquiez
require 'Rails_helper'
au sommet :)
Quittez et redémarrez votre console . Dans ce cas, rechargez! ne résoudra pas.
essayez ceciin appliccation.rb nom de module correct résoudre le même problème pour moi
module CorrectName #OldName <---------------
# Do not swallow errors in after_commit/after_rollback callbacks.
config.active_record.raise_in_transactional_callbacks = true
end
end
Dans mon cas, j'ai oublié d'exécuter Rails g uploader image
. Une fois cela fait, ça fonctionne bien.
Je recevais cette erreur et puis cela a fonctionné après le redémarrage du serveur.