我试图使用自动signout功能,rails 3.1,devise gem,:timeoutable不起作用,为什么?
这里是我的模型:
class Student < ActiveRecord::Base
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable, :timeoutable
def timeout
3.seconds
end
end
这里是routes.rb中:
devise_for :students do get '/students/sign_out' => 'students/sessions#destroy' end
我签到,然后我等待5秒钟,此时,学生会话应该过期,但是,如果向其他 受保护的页面迁移不会重定向回登录表单,这意味着该会话仍处于活动状态。
有什么我失踪?我应该检查什么?
感谢, hopewise
我已经升级到Devise 1.5.2,但是,自动注销仍然不能正常工作,我现在应该检查什么? 我已将此添加到学生模型: 2.seconds 结束 高清超时 2.seconds 结束 但是,仍然没有工作,我试图把一个断点到上述方法,使用高清timeout_in RubyMine,但是,他们从未到达过。 有什么想法吗? – simo
我已经在这里上传了一个例子: https://github.com/rodrigoflores/Testing-Timeout。 检查https://github.com/rodrigoflores/Testing-Timeout/blob/master/app/models/user.rb和开发日志说超时正在工作https://github.com/rodrigoflores/Testing-超时/斑点/主/日志/ development.log#L138 –
我发现解决方案, config.timeout_in被评论在文件devise.rb在配置/初始化文件夹 我认为添加:timeoutable是我所有我认为config/initializers中的devise.rb应该添加到旁边的文档中:可超时的,这对像我这样的RoR新手会有所帮助! – simo