$ rake db:sessions:create exists db/migrate create db/migrate/20110505041507_create_sessions.rb
いくつか設定を変更する必要があります。今回Railsのバージョン 2.3.11 で行っていますので、古いバージョンの場合とファイル名などが一部異なる可能性があります。
config/enviroment.rbのRAILS_GEM_VERSIONパラメータが指定のバージョンになっているか。
(いくつかの古いバージョンの場合、バグなのか設定方法の違いなのかわかりませんが、
CSRFの対策がされている箇所でエラーが発生することがあります。)
RAILS_GEM_VERSION = '2.3.11' unless defined? RAILS_GEM_VERSION
app/contorollers/application_controller.rbのprotect_from_forgery に
コメントがあれば外します。(私の環境では、はじめからコメントされていませんでした)
protect_from_forgery # See ActionController::RequestForgeryProtection for details
続いて、config/initializers/session_store.rbの以下の箇所のコメントを外します。
ActionController::Base.session_store = :active_record_store
では、はじめに実行したコマンドで、sessionsテーブルのマイグレーションファイルができていますので、rakeタスクを実行します。
$ rake db:migrate
PostgreSQLの場合、session_id列がstring型で作成されますが、デフォルトだと255byteとなるため、セッションのレコード作成時に、長さが足らず、エラーとなることがあるようです。
私の場合、手っ取り早くstring型をtextにしてしまいました。
(※その後、string型で、 :limit => 1024 に変更しました)
これで、セッション情報をデータベースで管理するようになるそうです。
0 件のコメント:
コメントを投稿