railsチュートリアルの9章にて、9.2 [Remember me] チェックボックス まで終えたところでテストを実行したのですが以下の画面になりエラーが検出されてしまいます。
forgetメソッドが未定義とのことですが以下の通り8章で記述しておりその時点では正常に動作していました。
ブラウザの方でもログアウトを試みたところ以下のようなエラーが発生し、forgetメソッドに原因があると考えていますが、解決策を提案頂けると幸いです。
追記 app/model/user.rb ファイルの中身
class User < ApplicationRecord attr_accessor :remember_token before_save { self.email = email.downcase } validates :name, presence: true, length: { maximum: 50 } VALID_EMAIL_REGEX = /\A[\w+\-.]+@[a-z\d\-]+(.[a-z\d\-]+)*.[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 } # 渡された文字列のハッシュ値を返す def User.digest(string) cost = ActiveModel::SecurePassword.min_cost ? BCrypt::Engine::MIN_COST : BCrypt::Engine.cost BCrypt::Password.create(string, cost: cost) end # ランダムなトークンを返す def User.new_token SecureRandom.urlsafe_base64 end # 永続セッションのためにユーザーをデータベースに記憶する def remember self.remember_token = User.new_token update_attribute(:remember_digest, User.digest(remember_token)) end # 渡されたトークンがダイジェストと一致したらtrueを返す def authenticated?(remember_token) return false if remember_digest.nil? BCrypt::Password.new(remember_digest).is_password?(remember_token) end end
app/model/user.rbの中身も記載していただけると、アドバイスできるかもです...!
回答1件
あなたの回答
tips
プレビュー