Сначала вам нужно сгенерировать новую миграцию:
rails generate migration AddDeviseTrackableColumnsToUsers \
sign_in_count:integer \
current_sign_in_at:datetime \
last_sign_in_at:datetime \
current_sign_in_ip:string \
last_sign_in_ip:string
затем заменить:
add_column :users, :sign_in_count, :integer
с:
add_column :users, :sign_in_count, :integer, default: 0, null: false
Теперь файл миграции выглядит так:
class AddDeviseTrackableColumnsToUsers < ActiveRecord::Migration[5.2]
def change
add_column :users, :sign_in_count, :integer, default: 0, null: false
add_column :users, :current_sign_in_at, :datetime
add_column :users, :last_sign_in_at, :datetime
add_column :users, :current_sign_in_ip, :string
add_column :users, :last_sign_in_ip, :string
end
end
Выполнить rails db:migrate
В пользовательской модели app / models / user.rb убедитесь, что опция :trackable
добавлена к методу devise
:
class User < ApplicationRecord
# Include default devise modules. Others available are:
# :registerable, :recoverable, :rememberable, :validatable, :confirmable,
# :lockable, :timeoutable, :trackable and :omniauthable
devise :database_authenticatable, :trackable
end
Включенные опции могут отличаться в вашем случае, просто добавьте :trackable
, если вы его не нашли.
Теперь вы можете использовать атрибут last_sign_in_at
, как и другие атрибуты.