这些代码输出2个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 :(得分:1)
使用counter_cache。它可以帮助您保存多个查询。您无需为count执行另一个查询。
答案 1 :(得分:1)
我的解决方案(一个查询)。我想你使用kaminari gem:
@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)