Я столкнулся с той же проблемой, и, хотя все продолжают говорить, что в этом нет необходимости, я обнаружил, что есть, как и вы.Так что это работает для меня:
# in application_controller.rb:
def current_user
@current_user ||= super && User.includes(:saved_listings).find(@current_user.id)
end
Обратите внимание, что это загрузит ассоциации в всех контроллерах.Для моего случая использования это именно то, что мне нужно.Если вы действительно хотите, чтобы это было только в некоторых контроллерах, вам придется настроить это еще раз.
Это также дважды вызовет User.find
, но с кэшированием запросов, которое не должно бытьпроблема, и, поскольку она предотвращает ряд дополнительных обращений к БД, она все равно дает прирост производительности.