3

アプリに Authlogic を実装しましたが、テーブルの意味について混乱していますsessions

UsersController両方のUserSessionsControllerコントローラ モデルに があります。データベース内 - テーブルusersとテーブルsessions

テーブルsessionsは常に空です。このテーブルの名前を に変更しようとしましuser_sessionsたが、同じケース - まだ空のテーブルです (アプリにログインしても、テーブルsession/に行が追加されませんuser_session)。

しかし、私のアプリはうまく機能しており、ログインとログアウトはうまく機能しており、同じ登録もテストした場合、logged_in_timeoutこれはうまく機能しています。

では、セッションについて何が欠けているのでしょうか? 私の場合、そこに行が保存されておらず、すべてが正常に機能しているように見える場合、これは私を少し混乱させます。このテーブルのポイントは何ですか。

ありがとう

4

2 に答える 2

3

フェイルオーバーやアプリケーションの再起動などを処理するためにセッションを永続化する場合を除いて、実際にはセッション用のデータベーステーブルは必要ありません。UserSessionモデルは次のように宣言でき、ARを拡張する必要はありません。

class UserSession < Authlogic::Session::Base
  ...
end
于 2012-07-12T16:58:18.703 に答える
1

Steakchaser は、セッションをデータベースに保存する必要がないという点で正しいです。ただし、質問にもっと直接答えるために、それが機能しなかった理由はconfig.session_storein config/initializers/session_store.rbdefaults to :cookie_store; です。これが に設定されて:active_record_storeいれば、セッション テーブルは期待どおりに読み込まれます。

セッションに ActiveRecord を実装する方法の詳細については、こちらを参照してください。

于 2014-03-04T14:41:25.717 に答える