NameError: undefined variable locale ou de la méthode "utilisateur" pour les principales:Objet
Je suis le tutoriel Ruby on Rails, et lorsque vous tentez d'enregistrer un utilisateur dans les Rails de la Console (en mode bac à sable), j'obtiens l'erreur suivante:
NameError: undefined local variable or method `user' for main:Object
from (irb):7
Remarque: j'ai tapé dans User.new
, saisissez un nom et e-mail, puis user.save
, et a obtenu l'erreur ci-dessus.
Code complet:
C:\Sites\rails_projects\sample_app>bundle exec rake db:migrate
== CreateUsers: migrating ====================================================
-- create_table(:users)
-> 0.0020s
== CreateUsers: migrated (0.0020s) ===========================================
C:\Sites\rails_projects\sample_app>rails console --sandbox
Loading development environment in sandbox (Rails 4.0.1)
Any modifications you make will be rolled back on exit
irb(main):001:0> User.new
=> #<User id: nil, name: nil, email: nil, created_at: nil, updated_at: nil>
<ame: "Andrew Ghobrial", email: "[email protected]")
=> #<User id: nil, name: "Andrew Ghobrial", email: "[email protected]",
created_at: nil, updated_at: nil>
irb(main):004:0> user.save
NameError: undefined local variable or method `user' for main:Object
from (irb):4
from C:/RailsInstaller/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems
/railties-4.0.1/lib/rails/commands/console.rb:90:in `start'
from C:/RailsInstaller/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems
/railties-4.0.1/lib/rails/commands/console.rb:9:in `start'
from C:/RailsInstaller/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems
/railties-4.0.1/lib/rails/commands.rb:62:in `<top (required)>'
from bin/rails:4:in `require'
from bin/rails:4:in `<main>'
irb(main):006:0> user.save
NameError: undefined local variable or method `user' for main:Object
from (irb):6
from C:/RailsInstaller/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems
/railties-4.0.1/lib/rails/commands/console.rb:90:in `start'
from C:/RailsInstaller/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems
/railties-4.0.1/lib/rails/commands/console.rb:9:in `start'
from C:/RailsInstaller/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems
/railties-4.0.1/lib/rails/commands.rb:62:in `<top (required)>'
from bin/rails:4:in `require'
from bin/rails:4:in `<main>'
irb(main):007:0> user
NameError: undefined local variable or method `user' for main:Object
from (irb):7
from C:/RailsInstaller/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems
/railties-4.0.1/lib/rails/commands/console.rb:90:in `start'
from C:/RailsInstaller/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems
/railties-4.0.1/lib/rails/commands/console.rb:9:in `start'
from C:/RailsInstaller/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems
/railties-4.0.1/lib/rails/commands.rb:62:in `<top (required)>'
from bin/rails:4:in `require'
from bin/rails:4:in `<main>'`
- poste le code que donne cette erreur
- J'ai tapé à l'Utilisateur.nouveau, saisissez un nom et e-mail, puis à l'entrée de l'utilisateur.enregistrer, et a obtenu l'erreur ci-dessus.
- vous avez commencé avec
user = User.new
, droit? - J'ai essayé, et il m'a donné le message d'erreur:
'user' is not recognized as an internal or external command, operable program or batch file.
- Vous pouvez poster à chaque ligne que vous avez couru dans la CISR, exactement comme vous l'avez fait?
- Bien sûr, je l'ai ajouté à la description de haut.
Vous devez vous connecter pour publier un commentaire.
Donc, comme @Phlip dit, votre
User.new
n'est pas affectée à une variable. Si vous n':Qui va travailler, en supposant que votre table des utilisateurs a
name
etemail
colonnes, et l'utilisateur de votre modèle ressemble à quelque chose comme:'user' is not recognized as an internal or external command, operable program, or batch file.
Cependant, à mon utilisateur.rb fichier dans le dossier de modèles, j'ai:class User < Activerecord::Base end
create_user
migration pourname
etemail
? Ceux-ci doivent être définies dans leUser
modèle. Voir mon edit.user
seul me donne que les.rails c
sandbox
mode de développement... Vous pourriez vouloir essayer de tout droit au développement en mode sanssandbox
(par exemplerails c
)app/models/user.rb
modèle, je n'ai aucune idée...user = User.new(name: "Andrew Ghobrial", email: "[email protected]")
Il me donne l'erreursyntax error, unexpected tLSHFT, expecting '<' or ';' or '\n'
Assez perplexe moi-même.app/models/user.rb
est correct. Vous le poster qui?class User << ActiveRecord::Base attr_accessor :name, :email end
class User << ActiveRecord::Base; attr_accessor :name, :email; end
- ou avait-il juste coller de cette façon dans le commentaire? Il peut être mor utile de l'ajouter à votre question afin que d'autres puissent le voir ainsi.1.9.3-p392 :004 > statut.delete_all
dans ce Statut de " s "doit être capitalisé "S".
ou
dans ce cas
NameError: undefined variable locale ou de la méthode "utilisateur" pour les principales:Objet
dans ce Statut de " u "doit être capitalisé à "U".
ou
dans ce cas
NameError: undefined variable locale ou de la méthode "post" pour les principales:Objet
dans ce Statut de " p " doit être capitalisé à 'P'.
Assurez-vous que dans
(Resourse).user
, La première lettre(pin = Pin, or tweet = Tweet)
est en majuscule.