dan*_*mcc 5 authentication devise ruby-on-rails-3
我有一个Rails 3应用程序,它使用Devise进行身份验证.
我想显示每个用户上次登录用户管理表的日期和时间.
我已将该应用程序基于以下应用程序:
https://github.com/dannymcc/rails3-base
Run Code Online (Sandbox Code Playgroud)
我已阅读Devise GitHub wiki并注意到它提到用户事件是可追踪的,但我找不到任何有关访问信息的信息等.
任何帮助/建议将不胜感激!
谢谢,
丹尼
Bre*_*der 11
该设计文件概述了可跟踪模块,将你想要做什么.在您的用户模型中,包括如下:trackable
模块:
devise :database_authenticatable,
...
:trackable
Run Code Online (Sandbox Code Playgroud)
并确保您的数据库具有正确的字段.如果你已经拥有一个用户表,不确定如何做到这一点,但添加具有正确名称和类型的字段应该可以解决问题.我创建用户表的迁移如下所示:
class CreateUsers < ActiveRecord::Migration
def self.up
create_table :users do |t|
t.string :name
t.string :email
t.database_authenticatable :null => false
t.recoverable
t.rememberable
t.trackable
t.timestamps
end
end
def self.down
drop_table :users
end
end
Run Code Online (Sandbox Code Playgroud)
该t.trackable
会添加正确的领域.在我的用户模型中,它们如下:
sign_in_count: integer,
current_sign_in_at: timestamp,
last_sign_in_at: timestamp,
current_sign_in_ip: string,
last_sign_in_ip: string
Run Code Online (Sandbox Code Playgroud)
然后你可以这样做user.last_sign_in_at
,检查strftime文档,了解如何以你想要的格式输出时间.