Я надеюсь, вы можете помочь, боролись с этим некоторое время сейчас: |Я использую devise и Rails 3
Когда я нажимаю на Sign In, я получаю страницу входа в devise, набираю имя пользователя и pw и нажимаю login.
После того, как я нажал на кнопку входа, я получаюперенаправлен на главную страницу, но теперь я все еще вижу ссылку «Войти», что означает, что <% if user_signed_in?%> все еще ложно.Но кажется, что после входа в систему в переменной сеанса есть некоторые значения, что здесь происходит?Я использовал devise в течение некоторого времени, и раньше у меня не было проблем.Спасибо, ребята! До того, как я вошел в систему с помощью devise
<%= session %>
no value
<% if user_signed_in? %>
**is false**
После того, как я вошел в систему с помощью devise
<%= session %>
_csrf_tokenAMUwVLu6G6rWfKICB43PYApFsYFRjVyJDSc2oU88uEk=warden.user.user.keyUser342$2a$10$.zslfggeUqvq.m/5LNSolOsession_id0db80c26bc36a4c1c74c223655dcb092
<% if user_signed_in? %>
**is false**
РЕДАКТИРОВАТЬ:
мой файл route.rb
Cybercellar3::Application.routes.draw do
devise_for :users
get "home/index"
<% if signed_in? %>
**is still false**
EDIT2:
user.rb
class User < ActiveRecord::Base
# Include default devise modules. Others available are:
# :token_authenticatable, :encryptable, :confirmable, :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
# Setup accessible (or protected) attributes for your model
attr_accessible :email, :password, :password_confirmation, :remember_me
end
Мне кажется, я нашел свою проблему в одном из моих контроллеров
application_controller.rb
#facebook stuff
def current_user
@current_user ||= User.find_by_id(session[:user_id])
end
def signed_in?
!!current_user
end
helper_method :current_user, :signed_in?
def current_user=(user)
@current_user = user
session[:user_id] = user.id
end
#facebook stuff
после того, как я удалил этот блок, он, казалось, работал отлично:)