2012-03-06 3 views
6

Bir Rails 3.2 uygulamasında Devise uygularım ve sistemin kullanıcıyı hatırlamasını istiyorum.Unise rememberable hiçbir şey hatırlamıyor

/app/models/user.rb:

class User < ActiveRecord::Base 
    devise :database_authenticatable, :recoverable, :rememberable, :trackable, :validatable 
    attr_accessible :name, :email, :password, :password_confirmation, :remember_me 
end 

/db/schema.rb:

create_table "users", :force => true do |t| 
    t.string "name" 
    t.string "email" 
    t.string "password" 
    t.datetime "created_at",        :null => false 
    t.datetime "updated_at",        :null => false 
    t.string "encrypted_password",  :default => "", :null => false 
    t.string "reset_password_token" 
    t.datetime "reset_password_sent_at" 
    t.datetime "remember_created_at" 
    t.integer "sign_in_count",   :default => 0 
    t.datetime "current_sign_in_at" 
    t.datetime "last_sign_in_at" 
    t.string "current_sign_in_ip" 
    t.string "last_sign_in_ip" 
end 

Ben çoğu standart/varsayılan şekilde bunu yapmak istiyorum ve Belgelerin yetersizliği göz önüne alındığında, bazı insanlar için "sadece çalışır" ve sadece benim için çalışmadığını tahmin ediyorum. Örneğin, Kullanıcı için geçişi oluşturmak için Devise jeneratörü kullandım ve herhangi bir denetleyiciyi geçersiz kılmadım. Bir onay kutusu alıyorum, ancak kontrol ettiğimde, kullanıcının bilgileri hatırlanmaz.

Neyi eksik? Jeneratörün oluşturması gereken şemadan eksik bir şey mi var?

+0

Bence Devise bu konuda çok fazla Doktora sahip değil. Kullanıcıda bir strateji olarak hatırlanabilir olmanın yeterli olup olmadığını bilmiyoruz. Ve eğer yeterliyse, oturum değişkeni hala kullanıcı bilgisine sahip olsa bile, tarayıcı kapalıyken neden çalışmaz? –

cevap

0

current_user.remember_me = true 
current_user.remember_me = false 

sizin schema.rb doğru görünüyorsa ile oynamak deneyin. Bu size göre

meant- buysa

+0

bu bir göç değil mi? – alony

+0

oh .. evet tabiki .. –

0

emin değilim Module: Devise::Models::Rememberable vasiyetle en :rememberable an giriş kullanıcının giriş kimlik kaydetmek için kullanılır. Bu, yakın eğer kimlik bilgilerini hatırlar demektir tarayıcı ve çıkış yapmayın.

Ancak, oturum açtığınızda bu, oturum açma bilgilerinizi (e-posta, parola) kaydetmez.