加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 如何通过关联的模型计数对ActiveRecord结果进

发布时间:2020-12-17 02:56:10 所属栏目:百科 来源:网络整理
导读:class Cafe ActiveRecord::Base belongs_to :user has_many :posts,dependent: :destroy has_many :tags,dependent: :destroyend 这是cafe.rb模型 class Post ActiveRecord::Base belongs_to :cafe belongs_to :userend 这是postq.rb.帖子就像回复. 我想创建
class Cafe < ActiveRecord::Base

  belongs_to :user

  has_many :posts,dependent: :destroy
  has_many :tags,dependent: :destroy
end

这是cafe.rb模型

class Post < ActiveRecord::Base
  belongs_to :cafe
  belongs_to :user
end

这是postq.rb.帖子就像回复.

我想创建新的cafe数组并按cafe.posts.count对其进行排序.
最后,我将展示前两家有很多回复的咖啡馆.

我试过一些排序代码,比如

@cafe_by_posts = Cafe.joins(:post).order('posts.size dsc')

但它不起作用.错误说咖啡馆与邮政无关.
如何通过关联的模型计数对ruby数组进行排序?

我不擅长英语,我很感激你的答案!

解决方法

嘿,在mysql中你可以直接使用喜欢

@cafe_by_posts = Cafe.joins(:posts).group("posts.cafe_id").order('count(posts.cafe_id) desc')

您可以使用限制直接选择前2名

@cafe_by_posts = Cafe.joins(:posts).group("posts.cafe_id").order('count(posts.cafe_id) desc').limit(2)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读