我希望我能清楚地解釋這一點。Rails:通過控制器中的關係預加載has_many
用戶has_many通知和has_many電影通過 通知。電影has_many預告片。
通知有3列:user_id,movie_id和網站。
在拖車#指數,我渲染@trailers每個@trailer呈現 3×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
movie.rb:
def tracked?(user, website)
user.notifications.where(movie_id: self.id, website: website).first
end
所以每部分拖車渲染的時候,我正在做3數據庫調用。處理這種情況的正確方法是什麼?
謝謝!太棒了 –