2012-05-08 173 views
6

型號:如何使用設計配置超時?

devise :database_authenticatable, :registerable,:timeoutable, :recoverable, :rememberable, :trackable, :validatable,:timeout_in => 10.seconds 

development.rb:

config.timeout_in = 10.seconds 

devise.rb:

config.timeout_in = 10.seconds 
+0

你真的需要4個空格來格式化你的代碼 – simonmorley

+0

那麼,有什麼問題 - 什麼是不工作? – simonmorley

+0

註銷10秒後沒有發生 – user1381579

回答

5

你期待頁面刷新,再告訴你一個登錄頁面?如果是這樣,那並不是可超時功能的工作原理。如果您希望在刷新時向您顯示登錄頁面,請從模型中刪除超時部分,並將以下內容放在devise.rb NOT development.rb中。不要忘記重新啓動rails server。

config.timeout_in = 1.hour 

這一切都是在色器件維基here

而且,我不知道大約10秒背後的邏輯記錄?似乎有點太短。如果它仍然不起作用,請增加(例如)五分鐘並測試。

+0

你能告訴我rember_me的工作原理嗎? – user1381579

+0

沒問題。檢查這篇文章:http://rdoc.info/github/plataformatec/devise/master/Devise/Models/Rememberable – simonmorley

+1

我相信10秒只是爲了測試 –

4

也有可能設置timeout_in選項動態

class User < ActiveRecord::Base 
    devise (...), :timeoutable 

    def timeout_in 
    if self.admin? 
     1.year 
    else 
     2.days 
    end 
    end 
end