我正在 Rails 3.2 应用程序上实现 Devise,并希望系统记住用户。
/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
我想以最标准/默认的方式执行此操作,并且考虑到文档的缺乏,我猜测它“只适用于”某些人,但根本不适合我。例如,我使用 Devise 生成器为用户构建迁移,并且没有覆盖任何 Controller 。我看到一个复选框,但是当我选中它时,用户的信息不会被记住。
我错过了什么?我的模式中是否缺少生成器应该创建的内容?
最佳答案
尝试玩一下
current_user.remember_me = true
current_user.remember_me = false
您的 schema.rb 看起来正确。
关于ruby-on-rails-3 - 设计可记住的东西就是什么都不记得,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9577102/