2013-07-04 104 views
0

我正在关注本教程:http://ruby.railstutorial.org/ruby​​ on rails - sessions

我的会话有问题。每次我登录到我的应用程序时,我都没有会话,而是被重定向到我的用户页面。并且创建/注册用户也起作用。

sessions_helper.rb

module SessionsHelper 

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

def signed_in? 
    @current_user != nil 
    #[email protected]_user.nil? 
end 

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

def current_user?(user) 
    @current_user = user 
end 

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



def store_location 
    session[:return_to] = request.url 
end 
end 

session_controller.rb

class SessionsController < ApplicationController 

def new 
    @title = "| Signin" 
end 

def create 
    user = User.find_by_email(params[:session][:email].downcase) 
    if user && user.authenticate(params[:session][:password]) 
     sign_in user 
     redirect_to user 
    else 
     #Fehlermeldung anzeigen falls login nicht erfolgreich war 
     flash.now[:error] = "Invalid email/password combination" 
     render 'new' 
    end 
end 

def destroy 
    sign_out 
    redirect_to root_url 
end 

end 
+0

如果我忘记了一些文件,请问我,我会添加这些 – ciaodarwin

+1

,这就是代码所做的事情......它登录用户而不是重定向到用户页面。你期待它做什么? – mihai

+0

没有。每当我给我的帐户详细信息..我来我的个人页面..但是当我点击登录按钮...它直接我到登录页面,虽然我已经在siggned! – ciaodarwin

回答

1

我看到至少有一个错误:

def current_user?(user) 
    @current_user = user 
end 

应该是

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

==,不=,因为你应该检查CURRENT_USER等于其他一些用户,而不是进行分配。

+0

抱歉,但这不起作用:/ – ciaodarwin