gpt4 book ai didi

ruby-on-rails - Rails 教程 User.save

转载 作者:太空宇宙 更新时间:2023-11-03 16:06:32 25 4
gpt4 key购买 nike

我正在编写 Michael Hartl 的教程(第 6 章)。当我尝试在 Rails 控制台中创建一个新用户时:

user = User.new(name: "Lord of Darkness", email: "LoD@hell.com")

我得到:

 => #<User id: nil, name: "Lord of Darkness", email: "LoD@hell.com",
created_at: nil, updated_at: nil, password_digest: nil>

这似乎是正确的。但是当我尝试保存时,我得到了这个:

irb(main):007:0> user.save
←[1m←[36m (0.0ms)←[0m ←[1mbegin transaction←[0m
←[1m←[35mUser Exists (0.0ms)←[0m SELECT 1 AS one FROM "users" WHERE LOWER("us
ers"."email") = LOWER('mhartl@example.com') LIMIT 1
←[1m←[36m (0.0ms)←[0m ←[1mrollback transaction←[0m
=> false

这绝对不是我想要的。我的 user_spec 通过了所有测试。我的 user.rb 看起来像这样:

class User < ActiveRecord::Base
attr_accessible :email, :name, :password, :password_confirmation
has_secure_password

before_save { |user| user.email = email.downcase }

validates :name, presence: true, length: { maximum: 50 }
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 }
validates :password, presence: true, length: { minimum: 6 }
validates :password_confirmation, presence: true
end

是什么导致了这个保存问题?如果不解决这个错误,我就无法继续学习教程。

最佳答案

我认为您的错误源于您创建的 User 没有密码这一事实。

您的 User 模型验证密码并要求它存在,但是当您从命令行创建新的 User 时,他/她还没有密码.

关于ruby-on-rails - Rails 教程 User.save,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12603060/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com