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