0
我需要在視圖中最小化數據庫查詢。首先讓我們看看我的設置:(末尾問題)Rails - 如何最小化這些查詢?
我的模型:
- User has_many Followings
- Following belongs_to Show/User
- Show has_many Episodes
FollowingsController:
Following.find(:all, :conditions => { :user_id => current_user.id }, :include => [:show], :order => "shows.name")
顯示模式:
def prev_episode()
Episode.find(:first, :conditions => ["show_id = ? AND air_date < ?", self.id, Date.today], :order => "air_date desc, number desc")
end
def next_episode()
Episode.find(:first, :conditions => ["show_id = ? AND air_date >= ?", self.id, Date.today], :order => "air_date asc, number asc")
end
我的觀點(簡體):
<% @followings.each do |following| %>
<tr>
<td><%= link_to "#{following.show.name}", show_path(:permalink => following.show.permalink) %></strong></td>
<td><%= following.show.prev_episode # UNWANTED QUERY %></td>
<td><%= following.show.next_episode # UNWANTED QUERY %></td>
</tr>
<% end %>
這使得可怕的每個請求的查詢很多。
該視圖最多可以包含100行,這使得超過200個請求!
我真的需要儘量減少這一點。有任何想法嗎?
PS。如有必要,我可以使用memcached。