未对用户进行身份验证时如何重定向到登录页面

时间:2014-11-14 08:57:09

标签: ruby-on-rails

我想要一个添加操作' destroy' if / else比用户没有被记录,他重定向到登录页面,但我做错了。

def destroy
    if user.sign_in
    sign_out
    redirect_to root_url
    else
      redirect_to signin_path
    end
  end

helper sessions_helper

  def sign_in(user)
    remember_token = User.new_remember_token
    cookies.permanent[:remember_token] = remember_token
    user.update_attribute(:remember_token, User.encrypt(remember_token))
    self.current_user = user
  end

如何解决? 抱歉我的英文不好

1 个答案:

答案 0 :(得分:0)

在destroy方法中,您调用user.sign_in,但在您的帮助程序中,您必须使用以下定义sign_in(user)

user.sign_in

在类User上创建方法

OR:

sign_in(user)

将用户作为参数传递给实际定义的方法。

<强> EDITED

ApplicationController

def sign_in(user)
    remember_token = User.new_remember_token
    cookies.permanent[:remember_token] = remember_token
    user.update_attribute(:remember_token, User.encrypt(remember_token))
    self.current_user = user
 end

end