我想根据评论数显示评论,因为我想修改@posts以按评论数排序,非常感谢 发布模型
has_many :comments
帖子控制器
@posts = Post.all
评论模型:
belongs_to :post
评论控制器
@post = Post.find(params[:id])
@comment = @post.comments.order("CREATED_AT DESC")
答案 0 :(得分:0)
Rails提供了counter_cache
的帮助。您可以阅读有关here
有两个步骤
rails g migration AddCommentsCountToPosts comments_count:integer
rake db:migrate
class Comment < ApplicationRecord
belongs_to :post, counter_cache: true
end
class Post < ApplicationRecord
has_many :comments
end
然后您可以按PostsController
index
动作中的comments_count排序
@posts = Post.order(:comments_count)