我做了一個局部的一首歌曲模型artist
,title
,duration
,release
等呈現在軌許多諧音(500+)是慢
我想顯示一個頁面上所有的藝術家的歌曲,有時他們有一噸。查詢需要0.08秒,但我也看到這一點:
Rendered artist/_song_listing.html.haml (18.2ms)
Rendered artist/_song_listing.html.haml (8.5ms)
Rendered artist/_song_listing.html.haml (7.5ms)
Rendered artist/_song_listing.html.haml (9.6ms)
Rendered artist/_song_listing.html.haml (18.6ms)
Rendered artist/_song_listing.html.haml (12.6ms)
Rendered artist/_song_listing.html.haml (7.8ms)
Rendered artist/_song_listing.html.haml (19.5ms)
(等等等等)
最終,這需要14秒,這是太長了。
以這種方式使用偏分量是否是錯誤的?有什麼辦法可以讓這個更快嗎?
編輯:
ArtistController:
def show
@artist = Artist.find(params[:id])
@songs = @artist.songs.order('published_at DESC').includes(:members)
show.html.haml:
.panel.panel-default
- @artist.songs.each do |song|
=render 'song_listing', song: song
Exerpt從_song_listing
(〜500倍):
.row
.col-xs-12
.summary
-if song.summary.present?
="#{song.summary.sanitize.strip.gsub("\u00A0"," ")}"
-else
%i
No Summary
.row
.col-xs-10
%ul.list-inline
- song.members.each do |member|
%li
%span
%img{src:"#{member.image_url}", width: '20px', height: '20px', class: 'img-circle'}
我更新了問題。這是我如何使用包括?我甚至可以通過藝術家查詢做一個包含嗎? – Ashbury 2015-03-31 22:58:20
@Ashbury你肯定是在正確的軌道上。查看您的Rails日誌以查看SQL查詢中的差異,如果您想查看究竟發生了什麼。 – 2015-03-31 23:12:50