2013-07-04 95 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