Ruby On Rails 3.0.9 を使用していますが、開発環境ではすべて正常に動作します。プロダクション環境に切り替えるか、サーバーにアップロードすると、サインイン後に同じログイン ページに戻ります。ログを確認すると、次のことがわかります。
Started POST "/users/login" for 127.0.0.1 at Thu Oct 03 16:48:13 -0300 2013
Processing by UserSessionsController#create as HTML
Parameters: {"user"=>{"password"=>"[FILTERED]", "login"=>"demo_admin"}, "utf8"=>"✓", "authenticity_token"=>"+7AEoVXZ9XiagEymVUnOhFHnck4rgDu883E/ySMlCxQ="}
Redirected to http://localhost:3000/admin
Completed 302 Found in 111ms
Started GET "/admin" for 127.0.0.1 at Thu Oct 03 16:48:13 -0300 2013
Processing by Admin::DashboardController#index as HTML
Completed 401 Unauthorized in 1ms
アクセスを管理するためにauthorization_rulesファイルを使用していますが、前述のようにDev環境では問題ありません。
アクションにブレークポイントを配置すると、admin/dashboard#index
到達していないため実行されません。httpserverファイルで壊れます(段階的にデバッグしました)が、Prod envではなくDevで機能する理由がわかりません。
助けてください。
ありがとう、ブライアン
アップデート
私ApplicationController
の には before_filter という呼び出しがcheck_plan_features
あり、それが最初に要求するのはunless current_user.blank? #redirects to Admin section
.
サインインした後、Devise を使用しcurrent_user
てユーザーの値を持っていることに気付きましたが、管理セクションにリダイレクトした後、同じフィルターに戻り、今回current_user
は null です。したがって、どういうわけか、管理セクションにアクセスしようとした後、ユーザーのセッションが破棄されたと思います。しかし、これは本番環境でのみ発生するため、何が原因なのかまだ疑問に思っています。