私はあなたが助けてくれることを願っています。 私はdeviseとRails 3を使用しています。Rails 3 Deviseセッションに値はありますが、<%if user_signed_in? %>は偽です
私がサインインをクリックすると、私はdeviseサインインページが表示され、ユーザー名とpwにパンチしてログインをクリックします。
ログインをクリックした後、メインページにリダイレクトされましたが、まだサインインリンクが表示されています。つまり、user_signed_inの場合は<%でしょうか? %>はまだfalseです。しかし、ログインした後にセッション変数にいくつかの値があるようですが、ここで何が起こっていますか?私はしばらくの間deviseを使用しており、以前は何の問題もなかった。みんなありがとう!
私は工夫
<%= session %>
_csrf_tokenAMUwVLu6G6rWfKICB43PYApFsYFRjVyJDSc2oU88uEk=warden.user.user.keyUser342$2a$10$.zslfggeUqvq.m/5LNSolOsession_id0db80c26bc36a4c1c74c223655dcb092
<% if user_signed_in? %>
**is false**
EDITでログインした後、私は工夫
<%= session %>
no value
<% if user_signed_in? %>
**is false**
でログインする前に:
私のroutes.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
を私の問題を見つけたと思う:)
私はいつも 'current_user'を使用します:) –
kishieと同じです。私はまた、常にcurrent_userをチェックしている。それは利用可能ですか? – zsquare
ありがとう!あなたは私の欲求不満に終止符を打つ。 – Brett