Проблема: Ранее я создал модель пользователя с минимальным количеством информации об устройстве.Я видел, что у devise есть «отслеживаемая» система, и хотел внедрить ее в существующую модель.Я добавил:
class AddSignInCountToUsers < ActiveRecord::Migration[5.2]
def change
add_column :users, :sign_in_count, :integer
end
end
Чтобы проверить миграцию, и она не будет работать.(Я также пробовал эту миграцию со значением «default: 0, null: false» с теми же результатами.
Проблемы, кажется, возникают, когда я добавляю «: trackable» в модель устройства.
Я получаю эту ошибку при входе в систему:
NoMethodError in Devise::SessionsController#create
undefined method `current_sign_in_at' for #<User:0x00007f484e5ef770>
#line with red highlight
match ? attribute_missing(match, *args, &block) : super
Ошибка в CMD первые несколько строк :
NoMethodError (undefined method `current_sign_in_at' for #<User:0x00007f484e5ef770>):
activemodel (5.2.1) lib/active_model/attribute_methods.rb:430:in `method_missing'
Маршруты:
devise_for :users, controllers: { confirmations: 'confirmations' }
Модель:
devise :database_authenticatable, :registerable,
:confirmable, :recoverable, :rememberable, :validatable, :trackable
def active_for_authentication?
super && approved
end
def inactive_message
approved? ? super : :not_approved
end
...
...
...
Это проблема устройства или она вызывается в другом месте?
Возможно, проблема также связана с существующей моделью (не уверен, почему это так, но на всякий случай), потому что если это так, я мог бы переопределить t и воссоздать ее, поскольку она все еще находится в разработке.
Я хочу воспользоваться всем, что может предложить Devise, и хочу перенести остальные функции устройства в мою модель. У кого-нибудь есть предложение или два?