0
目前,我有以下幾點:ActiveRecord包含,如何在嵌套記錄中使用?
@threads = current_user.threads.includes(:user, :thread_members)
然後我去線程並執行以下操作:
@threads.each do |thread|
thread_members = thread.thread_members_active(current_user)
@threadList << {
:id => thread.id,
:uuid => thread.uuid,
:user_id => thread.user.id,
:last_activity_at => thread.last_activity_at,
:user_count => thread_members.length,
:user_photos => thread_members.collect { |thread_member|
{
:id => thread_member.user.id,
:photo => thread_member.user.photo(:thumb),
:name => thread_member.user.full_name
}
},
:caption => thread.caption
}
end
這裏的問題是,每一個每一個循環,Rails是打到DB的相同的基本記錄。我看到日誌中的CACHE,但Rails看起來是緩存的,但它很亂。讓我希望我可以做一些類型的包括,所以沒有那麼多的數據庫請求。
關於如何優化的任何想法?包括所有用戶在一個數據庫中的東西碰到什麼?
感謝
什麼是對thread_members_active的代碼? –
@Cypher它是一個方法,執行以下操作:return self.thread_members.joins(:user).where(「users.guest = false or users.guest = true AND users.fname IS NOT NULL or users.id =#{ current_user.id}「) – AnApprentice