Mysql Rails ActiveRecord-选择评论最多的用户
我想选择评论最高的用户 这些评论是有关联的 我可以通过以下方式查询:Mysql Rails ActiveRecord-选择评论最多的用户,mysql,ruby-on-rails,ruby,sqlite,activerecord,Mysql,Ruby On Rails,Ruby,Sqlite,Activerecord,我想选择评论最高的用户 这些评论是有关联的 我可以通过以下方式查询: User.first.comments 现在我想选择评论最多的用户 我不想遍历整个用户表,因为这非常耗时 也许是这样的: User.joins(:comments).find(:all, :order => "COUNT(comments) desc") User.order( "comments_count desc" ).limit(10).all 但这是行不通的 如果没有解决方案,我会将它们缓存在外部表中。您
User.first.comments
现在我想选择评论最多的用户
我不想遍历整个用户表,因为这非常耗时
也许是这样的:
User.joins(:comments).find(:all, :order => "COUNT(comments) desc")
User.order( "comments_count desc" ).limit(10).all
但这是行不通的
如果没有解决方案,我会将它们缓存在外部表中。您应该使用计数器缓存,下面是一个示例:
class User < ActiveRecord::Base
has_many :comments
end
class Comment < ActiveRecord::Base
belongs_to :user, :counter_cache => true
end
为此,您应该使用计数器缓存,下面是一个示例:
class User < ActiveRecord::Base
has_many :comments
end
class Comment < ActiveRecord::Base
belongs_to :user, :counter_cache => true
end