我有两个具有has_many
关系的模型,例如
company.rb
class Company < ApplicationRecord
has_many :posts, dependent: :destroy
end
post.rb
class Post < ApplicationRecord
belongs_to :company
end
现在我正在尝试获得这样的结果
Abc (公司包含100多个帖子)
Xyz (公司包含100多个帖子)
因此,需要对概念进行查询,以获取每个公司的两个子记录,而不是全部。
我已经尝试过
Post.order(id: :desc).group_by(&:company)
它已加载按公司分组的所有帖子,然后页面速度变慢。
如果我这样尝试
posts = Post.order(view_count: :desc).limit(20)
@posts = posts.group_by(&:company)
正在招聘20个职位,但并非所有公司都如此。
我不知道这足以让您理解。
我现在该怎么办。
答案 0 :(得分:0)
如果要这样显示:
Company A
- Post A
- Post B
Company B
- Post C
- Post D
首先获得公司列表:
@companies = Company.all #You can add condition to take only those companies you want to show
@companies.each do |company|
#print company name
company.posts.order("view_count DESC").limit(2).each do |post|
#print post.title
end
end