2012-10-23 5 views
1

내 세션은 벌금과 멋쟁이 일하고 있었다 그리고 나는레일 : 내 세션을 삭제하지 않는 이유는 무엇입니까?

  1. 가 만든 "저를 기억하세요?"
  2. 등록
  3. 에 대한 우편물을 추가하는 시도 로그인에 대한 체크 박스 내 메일러가

을 일하고 있는지 확인하기 위해 새 사용자를 생성하고 지금은 그것은 나를 후에도 로그 아웃 못하게 로그 아웃 할 때 컴퓨터를 다시 시작합니다! 내가 아는 방법은 내 탐색 바에 로그인 상태가되어 로그인하지 않은 경우 로그인 링크가 표시됩니다. 쿠키 삭제를 시도해 보았지만 페이지를 새로 고칠 때마다 다시 나타납니다.

사용자 번호는

def create 
    @user = User.new(params[:user]) 

    respond_to do |format| 
    if @user.save 
     UserMailer.registration_confirmation(@user).deliver 
     sign_in(@user) 
     format.html { redirect_to @user, notice: 'User successfully created.' } 
     format.json { render json: @user, status: :created, location: @user } 
    else 
     format.html { render action: 'new' } 
     format.json { render json: @user.errors, status: :unprocessable_entity } 
    end 
    end 
end 

네비게이션 바

<nav class="clearfix"> 
     <% if !signed_in? %> 
      <%= link_to "home", root_url %> 
     <% else %> 
      <%= link_to "my profile", current_user %> 
      <%= link_to "edit profile", edit_user_path(current_user) %> 
      <%= link_to "friends", user_friends_path(current_user) %> 
     <% end %> 

     <div class="rightnav"> 
     <% if signed_in? %> 
      <%= link_to "active users", users_path %> 
      <%= link_to "log out", signout_path, method: "delete", :id =>"logoutlink" %> 
     <% else %> 
      <%= link_to "sign up", new_user_path, :id => "signuplink" %> 
      <!-- <a href="#" id="signuplink">Sign Up</a> --> 
      <%= link_to "log in", signin_path, :id => "loginlink" %> 
      <!-- <a href="#" id="loginlink">Log In</a> --> 
     <% end %> 
     </div> 
    </nav> 

세션 컨트롤러

class SessionsController < ApplicationController 

def new 
end 

def create 
    user = User.find_by_email(params[:session][:email]) 
    if user && (!params[:session][:email].blank?) && user.authenticate(params[:session][:password]) 
    # if params[:remember_me] 
    # cookies.permanent[:remember_token] = user.remember_token 
    # else 
    # cookies[:remember_token] = user.remember_token 
    # end 
     sign_in user 
     redirect_to user_path(user) 
    else 
     flash.now[:error] = "Invalid email and/or password." 
     render 'new' 
    end 
end 

def destroy 
    sign_out 
    redirect_to root_url 
end 

세션 도우미

를 만들
module SessionsHelper 

def sign_in(user) 
    self.current_user = user 
end 

def signed_in? 
    !current_user.nil? 
end 

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

def current_user=(user) 
    @current_user = user 
end 

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

는 다른 파일이 필요하면 알려주세요.

답변

0

결국 나는 그것을 알아 냈습니다. 난 그냥

cookies[:remember_token] = nil

cookies.delete(:remember_token)

변경

관련 문제