2011-09-22 6 views
18

これらは、既存のインストール工夫にモジュールを追加するための命令です:https://github.com/plataformatec/devise/wiki/How-To:-change-an-already-existing-table-to-add-devise-required-columnsDeviseの 'timeoutable'モジュールを既存のDeviseインストールに追加するにはどうすればいいですか? - Railsの3.1

しかし、私はtimeoutableために必要な列を見つけるように見えることはできません。

timeoutableがDeviseライブラリに必要なフィールドを探しました:https://github.com/plataformatec/devise/blob/master/lib/devise/schema.rb - そのスキーマファイルにそのようなメソッドはありません。

モデルはちょうど列への参照せずに独自の方法があります。http://rdoc.info/github/plataformatec/devise/master/Devise/Models/Timeoutable

どのように私はその機能を追加できますか?

ありがとうございました。

+0

あなたの最初のリンクはすべての答えを与えました!ありがとう – carbonr

答えて

20

timeoutableは、ログインセッションのタイムアウトを指します。列を追加する必要はありません。モデルに追加するだけです。

timeoutableフックが(ソース:https://github.com/plataformatec/devise/blob/master/lib/devise/hooks/timeoutable.rb)すべての魔法が含まれています

devise :timeoutable 

そしてconfig/initializers/devise.rbにインターバル時間を設定します。あなただけのユーザモデルにtimeoutableを追加する必要がある

+1

ユーザーの最後の要求時刻がセッションに格納されているため、列は不要です。 –

14

# ==> 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

また、適切な移行を実行してデータベースに列を追加する必要があります。 – iamryandrake

+4

:timeoutableに余分な列は必要ありません。上記の答えを見てください。 – colsen

+0

私はそれをすぐに入れようとしましたが、コードを見るとlast_request_atという列が読み込まれるので、それを持たない場合は使用できなくなります。 – Lomefin

関連する問題