如何将Devise的'超时'模块添加到现有的Devise安装中? - Rails 3.1

时间:2011-09-22 19:18:54

标签: ruby-on-rails ruby-on-rails-3 devise ruby-on-rails-3.1

这些是将模块添加到现有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 个答案:

答案 0 :(得分:23)

timeoutable指的是登录会话超时。不需要额外的列,只需将其添加到您的模型中即可。

timeoutable挂钩包含所有魔法(来源:https://github.com/plataformatec/devise/blob/master/lib/devise/hooks/timeoutable.rb

答案 1 :(得分:19)

您只需要向用户模型添加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

答案 2 :(得分:0)

只需添加到您的模型中即可:

devise :timeoutable, timeout_in: XX.minutes

用所需的分钟数代替XX。

答案 3 :(得分:0)