2013-08-07 33 views
0

這些代碼輸出2個sql查詢。我如何用較少的SQL查詢來編碼?

@trackings = Tracking.where(:target_user_id => current_user.id).page(params[:page]).per(10) 
@trackings_count = Tracking.where(:target_user_id => current_user.id).count 

要減少,我該如何編碼?

這樣的事情?

@trackings = Tracking.where(:target_user_id => current_user.id) 
@trackings_count = @trackings.count 
@trackings = @trackings.page(params[:page]).per(10) 
+0

我覺得你的第二次嘗試仍然會導致兩個查詢,因爲「.Count之間的」運行'SELECT COUNT(*)FROM ...」 – Nick

+0

@Nick謝謝你。有任何好主意,使其更快加載頁面 – MKK

+0

我可以建議,如果你可以發佈你的模型代碼。你有像TargetUser has_many:trackings? –

回答

1

我的解決方案(一個查詢)。我猜你用雷的寶石:

@trackings = Tracking.where(:target_user_id => current_user.id).to_a 
@trackings_count = @trackings.length 
@trackings = Kaminari.paginate_array(@trackings).page(params[:page]).per(10)