Tôi hy vọng bạn có thể giúp đỡ, đã đấu tranh với vấn đề này trong một thời gian: | Im sử dụng thiết lập và Rails 3Rails 3 Devise Session Có giá trị nhưng <% nếu user_signed_in? %> là false
Khi tôi nhấp vào Đăng nhập, tôi nhận được trang đăng nhập, tôi nhấn vào tên người dùng và pw và nhấp vào đăng nhập.
Sau khi tôi nhấp vào đăng nhập, tôi được chuyển hướng đến trang chính nhưng bây giờ tôi vẫn thấy liên kết Đăng nhập, có nghĩa là <% nếu user_signed_in? %> vẫn sai. Nhưng có vẻ như có một số giá trị trong biến phiên sau khi tôi đăng nhập, điều gì đang xảy ra ở đây? Tôi đã được sử dụng devise cho một thời gian và havent đã có bất kỳ vấn đề trước. Cảm ơn!
Trước khi tôi đăng nhập với devise
<%= session %>
no value
<% if user_signed_in? %>
**is false**
Sau khi tôi đăng nhập với devise
<%= session %>
_csrf_tokenAMUwVLu6G6rWfKICB43PYApFsYFRjVyJDSc2oU88uEk=warden.user.user.keyUser342$2a$10$.zslfggeUqvq.m/5LNSolOsession_id0db80c26bc36a4c1c74c223655dcb092
<% if user_signed_in? %>
**is false**
EDIT:
tập tin routes.rb tôi
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
Tôi nghĩ rằng tôi thấy vấn đề của tôi trong một trong các bộ điều khiển của tôi
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
sau khi tôi loại bỏ khối này nó dường như làm việc một cách hoàn hảo :)
Tôi luôn sử dụng 'if current_user' :) –
Giống như kishie. Tôi cũng luôn kiểm tra endup cho current_user. Điều đó có sẵn không? – zsquare
Cảm ơn bạn rất nhiều! Bạn chấm dứt sự thất vọng của tôi. – Brett