gpt4 book ai didi

ruby-on-rails - Ruby on Rails 教程 - Michael Hartl - 测试 "User when email address is already taken"

转载 作者:数据小太阳 更新时间:2023-10-29 08:04:32 26 4
gpt4 key购买 nike

我在“用户已使用电子邮件地址时”的测试中遇到问题,这是我运行测试时显示的内容

1) User when email address is already taken
Failure/Error: user_with_same_email = @user.dup
NoMethodError:
private method `initialize_dup' called for #<User:0x007f9710c7c528>
# ./spec/models/user_spec.rb:78:in `block (3 levels) in <top (required)>'

我没有意识到我将什么定义为私有(private)的,我不能调用。

这里是测试

    describe "when email address is already taken" do
before do
user_with_same_email = @user.dup
user_with_same_email.email = @user.email.upcase
user_with_same_email.save
end

it { should_not be_valid }
end

这里是用户模型

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

has_many :microposts, dependent: :destroy

before_save { self.email.downcase! }
before_save :create_remember_token

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 :name, presence: true, length: { maximum: 50}

validates :password, length: { minimum: 6 }

validates :password_confirmation, presence: true

private
def create_remember_token
self.remember_token = SecureRandom.urlsafe_base64
end

end

谢谢

最佳答案

这是带有 ruby​​ 2 的 Rails 3.2.12 中的一个错误。看看这个 https://github.com/rails/rails/issues/9417 .切换到 Rails 3.2.15 应该可以解决您的问题。

关于ruby-on-rails - Ruby on Rails 教程 - Michael Hartl - 测试 "User when email address is already taken",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19663182/

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