I have a Rails 3 application and it's using Devise for the authentication.
I would like to display the date and time each user last logged in within the administration table of users.
I have based the application on the following application:
https://github.com/dannymcc/rails3-base
I have read through the Devise GitHub wiki and notice that it mentions that user events are trackable, but I can't find any information regarding accessing the information etc.
Any help/advice would be greatly appreciated!
Thanks,
Danny
The Devise documentation outlines the trackable module which will do what you want. In your user model, include the :trackable
module like so:
devise :database_authenticatable,
...
:trackable
And make sure your database has the right fields. Not sure how do this if you already have a user table, but adding fields with the right names and types should do the trick. My migration to create my users table looks like so:
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
The t.trackable
will add the correct fields. In my user model, they're as follows:
sign_in_count: integer,
current_sign_in_at: timestamp,
last_sign_in_at: timestamp,
current_sign_in_ip: string,
last_sign_in_ip: string
Then you can just do user.last_sign_in_at
and check the strftime documentation on how to output the time in the format you want.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With