Как добавить модуль Devise 'timeoutable' в существующую установку Devise?- Рельсы 3.1 - PullRequest
23 голосов
/ 22 сентября 2011

Ниже приведены инструкции по добавлению модуля в существующую установку Devise: https://github.com/plataformatec/devise/wiki/How-To:-change-an-already-existing-table-to-add-devise-required-columns

Но я не могу найти необходимые столбцы для timeoutable.

Я искал поля, которые timeoutable требуется в библиотеке Devise: https://github.com/plataformatec/devise/blob/master/lib/devise/schema.rb - но в этом файле схемы такого метода нет.

Модель имеет только собственный метод без ссылки на столбцы: http://rdoc.info/github/plataformatec/devise/master/Devise/Models/Timeoutable

Как добавить эту функциональность?

Спасибо.

Ответы [ 4 ]

24 голосов
/ 22 сентября 2011

timeoutable относится к тайм-ауту сеанса входа в систему. Никаких дополнительных столбцов не требуется, просто добавьте их в свою модель.

Крюк timeoutable содержит всю магию (источник: https://github.com/plataformatec/devise/blob/master/lib/devise/hooks/timeoutable.rb)

20 голосов
/ 08 октября 2014

Вам нужно только добавить timeoutable к вашей модели пользователя:

devise :timeoutable

и установить интервал времени в config/initializers/devise.rb:

# ==> Configuration for :timeoutable
# The time you want to timeout the user session without activity. After this
# time the user will be asked for credentials again. Default is 30 minutes.
config.timeout_in = 30.minutes
0 голосов
/ 28 ноября 2018

timeoutable не работает, если у вас есть remember_me = true

https://github.com/plataformatec/devise/blob/master/lib/devise/hooks/timeoutable.rb#L26

0 голосов
/ 30 августа 2018

Просто добавьте к своей модели:

devise :timeoutable, timeout_in: XX.minutes

замените XX на желаемое количество минут.

...