我在所有stackoverflow中搜索了一个答案,但仍然不知道该怎么办。练习要求我:
将user分配给数据库中的第一个用户,并通过直接调用它来验证member方法是否有效。
所以我应该打电话给吗
user.remember
这给了我错误
undefined method `remember_token' for #<Class:0x00000004ab1dd8>
我做到了:
rails generate migration add_remember_digest_to_users remember_digest:string
rails db:migrate
user.rb:enter code here
class User < ApplicationRecord
before_save { email.downcase! }
validates :name, presence: true, length: { maximum: 50 }
VALID_EMAIL_REGEX = /A[w+-.]+@[a-zd-]+(.[a-zd-]+)*.[a-z]+z/i
validates :email, presence: true, length: { maximum: 255 },
format: { with: VALID_EMAIL_REGEX },
uniqueness: { case_sensitive: false }
has_secure_password
validates :password, presence: true, length: { minimum: 6 }
# Returns the hash digest of the given string.
def User.digest(string)
cost = ActiveModel::SecurePassword.min_cost ? BCrypt::Engine::MIN_COST :
BCrypt::Engine::cost
BCrypt::Password.create(string, cost: cost)
end
# Returns a random token. Listing 9.2: Adding a method for generating tokens.
def User.new_token
SecureRandom.urlsafe_base64
end
# Remembers a user in the database for use in persistent sessions.
def remember # Listing 9.3: Adding a remember method to the User model. green
self.remember_token = User.new_token
update_attribute(:remember_digest, User.digest(remember_token))
end
end
我运行了"rails测试",0次失败,0次错误,0次跳过!
您必须首先将第一个用户分配给用户,然后调用记住方法
你的做法是
user=第一个用户user.remember