新手问题 [Ruby on Rails Tutorial] signout 不起作用,不知道是什么原因

u1355214846 · 2013年03月17日 · 最后由 u1355214846 回复于 2013年03月18日 · 2351 次阅读

app/helpers/sessions_helper.rb代码如下:

module SessionsHelper
  def sign_in(user)
    cookies[:remember_token]= user.remember_token
    self.current_user=user
  end

  def signed_in?
    !current_user.nil?
    #!!current_user
  end

  def current_user=(user)
    @current_user = user
  end

  def current_user
    @current_user ||= User.find_by_remember_token(cookies[:remember_token])
    #@current_user
  end

  def sign_out
    self.current_user=nil
    cookies.delete(:remember_token)
    @current_user = nil
  end

  def current_user?(user)
    user == current_user
  end
end

不知道为什么其中的 signed_in?方法总是返回 true

请检查一下 sign_in 方法的定义,正确的应该是:

def sign_in(user)
  cookies.permanent[:remember_token] = user.remember_token
  self.current_user = user
end

#1 楼 @andor_chen 其实是 cookies.permanent[:remember_token] = user.remember_token 不管用,所以用 cookies[:remember_token]= user.remember_token 做了尝试,还是不行

需要 登录 后方可回复, 如果你还没有账号请 注册新账号