【发布时间】:2015-12-09 01:28:04
【问题描述】:
希望我能解释清楚。
用户有_many 个通知和has_many 电影通过 通知。一部电影有_许多预告片。
Notifications 有 3 列:user_id、movie_id 和 website。
在预告片#index 上,我正在渲染 @trailers 并且每个 @trailer 都会渲染 3 x ajax 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
电影.rb:
def tracked?(user, website)
user.notifications.where(movie_id: self.id, website: website).first
end
因此,每次渲染部分预告片时,我都会进行 3 次 DB 调用。处理这种情况的正确方法是什么?
【问题讨论】:
标签: ruby-on-rails ajax