Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/53.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 在rails控制台中创建经过身份验证的用户会显示矛盾的数据_Ruby On Rails_Ruby_Console_Ruby On Rails 4_Rails Console - Fatal编程技术网

Ruby on rails 在rails控制台中创建经过身份验证的用户会显示矛盾的数据

Ruby on rails 在rails控制台中创建经过身份验证的用户会显示矛盾的数据,ruby-on-rails,ruby,console,ruby-on-rails-4,rails-console,Ruby On Rails,Ruby,Console,Ruby On Rails 4,Rails Console,我正在回顾Hartl的Rails教程,虽然我能够在控制台中成功创建用户,但我对当前的反馈感到困惑: 2.0.0-p247 :014 > user.update_attributes name: "Ryan Waits", email: "ryan.waits@gmail.com" (0.3ms) begin transaction User Exists (0.3ms) # commented out => true 2.0.0-p247 :015 > user =>

我正在回顾Hartl的Rails教程,虽然我能够在控制台中成功创建用户,但我对当前的反馈感到困惑:

2.0.0-p247 :014 > user.update_attributes name: "Ryan Waits", email: "ryan.waits@gmail.com"
(0.3ms)  begin transaction
User Exists (0.3ms)  # commented out
=> true 
2.0.0-p247 :015 > user
=> #<User id: 2, name: nil, email: nil, # commented out
2.0.0-p247 :016 > user.name
=> "Ryan Waits"
2.0.0-p247:014>user.update\u属性名称:“Ryan等待”,电子邮件:“Ryan。waits@gmail.com"
(0.3ms)开始事务处理
用户存在(0.3ms)#已注释掉
=>正确
2.0.0-p247:015>用户
=>#user.name
=>“Ryan等待”
它创建了它应该创建的用户,但是为什么我需要特别调用user.name或user.email来显示他们的价值观……有人有想法吗

用户模型:

class User < ActiveRecord::Base
 before_save { self.email == email.downcase }
 attr_accessor :name, :email

 validates :name, presence: true
 VALID_EMAIL_REGEX = /\A[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i
 validates :email, presence: true, format: { with: VALID_EMAIL_REGEX },
                        uniqueness: { case_sensitive: false}

 has_secure_password
 validates :password, length: { minimum: 6 }
end
class用户
用户控制器:

class UsersController < ApplicationController
 def index
 @user = User.all
end

 def new

 end

 def show
  @user = User.find params[:id]
 end
end
class UsersController
除了显示已创建用户的控制台之外,在尝试在索引或显示视图中显示用户时,数据库中没有任何用户

索引错误:

未定义的方法“email”#

索引视图:

<%= @user.name %>
<%= @user.email %>


irb在内存中只有对象的缓存版本。
user.reload
而不是
user
向您显示了什么

user.reload给了我相同的输出:=>#afaik,irb只是默认调用对象上的
#inspect
?因为这个原因只问:2.0.0-p247:014>看起来你在ruby目录中。@creativereason我在rails控制台中。。。