Эта проблема действительно теряет меня.
У меня есть модель для аутентификации: пользователь.
У меня есть модель для комментариев: комментарий.
У меня есть модель, которая комментируется: weburl.
Weburl 1 .. * Комментарий
Weburl * .. 1 пользователь
Комментировать * .. 1 пользователь
Проблема, с которой я столкнулся, не подлежит тестированию (все мои тесты проходят успешно) и не возникает постоянно. Обычно это происходит во второй раз, когда я генерирую такое же действие контроллера.
Проблема - это мой пользователь, связанный с моим комментарием, и извлекаемый через 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
Добавление моего init.rb файла 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, ошибка не происходит
Док говорит: # В среде разработки код вашего приложения перезагружается при каждом запросе. Это замедляет время отклика, но идеально подходит для разработки, поскольку вам не нужно перезагружать веб-сервер при внесении изменений в код.
нашел следующий билет, возможно, взаимосвязан http://dev.rubyonrails.org/ticket/10722
Также проблема возникает с Mongrel и WebRick.