Надеюсь, я могу это ясно объяснить.Rails: предварительная загрузка has_many через отношение в контроллере
A has_many уведомления пользователя и has_many фильмы через уведомлений. Фильм has_many трейлеры.
Уведомления содержат 3 столбца: user_id, movie_id и веб-сайт.
на прицепы # индекса, я рендеринг @trailers и каждый @trailer оказывает -х АЯКС notification_forms (каждая форма является лишь одной кнопкой, одна для каждого варианта «сайта». Когда пользователь нажимает на эту кнопку, запрос Ajax отправляется, чтобы создать новую запись уведомления)
- я уследить из которых была нажата кнопка (глядя вверх, чтобы увидеть, если уведомление существует для этого пользователя/фильма)
меня беспокоит то, что потому что я только предварительно загружаю @trailers, в настоящее время я делаю 3 новых вызова БД на каждой итерации трейлера.
_notification_form.html.erb (вызывается 3 раза на каждом прицепе)
<% if trailer.movie.tracked?(current_user, "netflix") %>
## do some css stuff on the button to show notification already set
movie.rb:
def tracked?(user, website)
user.notifications.where(movie_id: self.id, website: website).first
end
Таким образом, каждый раз, когда трейлер частичное визуализируется, я делаю 3 Вызов БД. Каков правильный способ справиться с этой ситуацией?
Спасибо! Это потрясающе –