この問題は本当に私を失っています。
認証のモデルがあります:ユーザー。私はコメントのモデルを持っています:コメント。コメント可能なモデルがあります:weburl.
Weburl 1..* コメント Weburl *..1 ユーザー コメント *..1 ユーザー
私が抱えている問題はテストできず (私のテストはすべて合格です)、常に発生するわけではありません。通常、同じコントローラー アクションを 2 回生成したときに発生します。
問題は、ユーザーがコメントに関連付けられていることです。属性が同じであっても、comment.user を介して取得すると、current_user と等しくなりません。例えば :
(comment.user.login == current_user.login == User.find(1).login)
==> True
(comment.user.id)
==> Unknown in the current context
(comment.user.class == User == current_user.class)
==> True
私は関係belongs_to
を再確認しhas_one has_many
、私のモデルで
私の推測では、これはキャッシングと関係があると思います。開発環境でこれを経験していますが、自動テストや本番環境では経験していません。
何が問題なのかを理解したいと思います。
ありがとう
EDIT 私の development.rb 初期化ファイルを追加する
config.cache_classes = false #Set to true for prod
config.whiny_nils = true
config.action_controller.consider_all_requests_local = true #Set to false for prod
config.action_view.debug_rjs = true
config.action_controller.perform_caching = false #Set to true for prod
編集 #2 config.cache_classes が true の場合、エラーは発生していません
Doc のコメント: # 開発環境では、アプリケーションのコードはリクエストごとにリロードされます。これにより応答時間が遅くなりますが、コードを変更するときに Web サーバーを再起動する必要がないため、開発には最適です。
次のチケットが見つかりました。相互に関連している可能性がありますhttp://dev.rubyonrails.org/ticket/10722 また、問題は Mongrel と WebRick で発生します。