parabola が正常に動作しなくなった件
中身をいぢってないので schema 変更が原因ですか??
しかし困った。最新版で rake test してみても異常なし (がしかし、試験がダメな可能性は高いな)。development 環境で / にアクセスしてもログイン画面に遷移。
LoginEngine 方面を追い掛けてみたんですがよくわからない。
仕方がないので、と parabola 側で rake db:sessions:create してみたら migrate なナニが作成された。中身は以下。
class AddSessions < ActiveRecord::Migration def self.up create_table :sessions do |t| t.column :session_id, :string t.column :data, :text t.column :updated_at, :datetime end add_index :sessions, :session_id end def self.down drop_table :sessions end end
typo 側の db/schema.rb を見てみると (sessions のみ)
create_table "sessions", :force => true do |t| t.column "sessid", :string, :limit => 32 t.column "data", :text t.column "updated_at", :datetime end add_index "sessions", ["sessid"], :name => "sessid", :unique => true
む。でも vendor/rails 配下を grep かけてみると sessid でも session_id でも良い形になっているように読めるなぁ。おかしいなぁ。
と言いつつ、モチベーションを切らしつつ、移行前の本番 DB を見てみると sessions テーブルが更新されているではありませんか。げげ、と言いつつ本番環境の config/database.yml 見てみると更新されてないし。(駄目
てコトで (きっこ風)、本番環境ではセッションの共有は無事に正常動作しているようなのですが、development な環境でのログインループは一体何なのだろうか。あ、本番な環境って、svn up してないな。本番環境から一式 scp してきて diff ですか??
って diff 取ったんですが微妙な部分満載だ。
- config/environment.rb で ENV['RAILS_ENV'] に "development" をセットしとる
- これは /etc/apache2/mods-enabled/fcgid.conf で DefaultInitEnv RAILS_ENV production な設定してるのでこちらが優先されるハズ
- config/environments/production.rb にて ActionController::Base.session_options[:session_domain] = な記述がコメントアウトされている。ちなみに typo 側では生きている。でもセッション共有はできている模様。なんだそりゃ。
- config/environments/ ん中の development.rb と production.rb が異なる。
- これは本番環境で書き換えてリポジトリに反映されていないものと思われる。微妙スギやっさ。
ちなみに config/environment.rb で
ActionController::CgiRequest::DEFAULT_SESSION_OPTIONS.update(:database_manager => CGI::Session::ActiveRecordStore)
な指定あり。これは typo も parabola も両方指定。セッションドメインな記述は片側のみで良いの? 動作を見る限りではセッション共有はデキてるのでセッションドメインな記述は不要なのかなぁ。謎だらけ。ってか、意味をきちんと理解して記述してないのがバレバレじゃんかよー。
む。もしかして development なナニでログイン無限ループなソレって上記の DEFAULT_SESSION_OPTIONS なナニが記述されていないから、なの? なんかもうだんだんどーでも良くなってきたなぁ。(駄目