在我的应用中,我有一个产品型号,其中有很多评论。
在我的控制器中,我只想根据有多少评论来订购产品数组。
@search = Product.search_attributes(params[:search])
@products = @search.sort_by_reviews_count
def self.sort_by_reviews_count
self.sort! { |x,y| x.reviews.count <=> y.reviews.count }
end
但是,我收到以下错误:
undefined method `sort!' for #<Class:0x007ff019ebf468>
为什么会这样?
答案 0 :(得分:2)
因为您正在尝试对Product < ActiveRecord::Base
课程进行排序。这没有意义。
您可以使用AR关系对数据库中的关联进行排序,但我不确定如何。
如果你不介意在应用程序中进行排序,你应该能够这样做:
def self.sort_by_reviews_count
self.all.sort! { |x,y| x.reviews.count <=> y.reviews.count }
end