Ruby on rails 在rails控制台中创建经过身份验证的用户会显示矛盾的数据
我正在回顾Hartl的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 =>
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控制台中。。。