#Rails教程第8课

时间:2015-10-12 17:04:40

标签: ruby-on-rails

我正在按照Michael Hart的教程学习rails https://www.railstutorial.org/book/log_in_log_out#sec-remember_me,但我得到了未定义的方法'remember'。

我搜索了这个错误并找到了一些解决方案,但没有修复错误,所以显然我在Sessions_Controller中得到了一个no方法错误,因为我的remember方法未定义,这里是我记忆方法的代码

Sessions_Controller

module SessionsHelper


 def log_in(user)
     session[:user_id] = user.id
 end



 def remember(user)
     user.remember
     cookies.permanent.signed[:user_id] = user.id
     cookies.permanent[:remember_token] = user.remember_token

 end

user.rb

class User < ActiveRecord::Base

def User.new_token
    SecureRandom.urlsafe_base64
end


def remember_token
    self.remember_token = User.new_token # self sets remember token attribute

    update_attribute(:remember_digest,User.digest(remember_token))
    # creates a random string of digits
end
end

那么如何修复No方法错误?

1 个答案:

答案 0 :(得分:0)

你的代码中只有一个拼写错误。根据您提供的链接,它应为def remember,而不是def remember_token。 :)