ActiveAdmin:按关联计数排序 [英] ActiveAdmin: sort by association count

查看:68
本文介绍了ActiveAdmin:按关联计数排序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有以下模型

class User < ActiveRecord::Base
   has_many :reviews
end

class Review < ActiveRecord::Base
   belongs_to :user
end

我想排序

我尝试了此操作,但没有运气:(来自这个SO问题

I tried this, but no luck: (from this SO question)

ActiveAdmin.register User do
  filter :name
  index do
    column :name
    column :email
    column "Facebook" do |u|
      if u.provider == "facebook"
        "Yes"
      end
    end
    column "No. of reviews", :sortable => :"reviews.count" do |u|
      u.reviews.count
    end

  end

  controller do
    def scoped_collection
      end_of_association_chain.includes(:reviews)
    end
  end
end


推荐答案

我建议在用户模型上使用 counter_cache 进行评论,然后简单地直接在ActiveAdmin中使用此列:

I'd suggest to use a counter_cache on your user model for your reviews and then simply use this column in ActiveAdmin directly:

index do
  # ...
  column "No. of reviews", :sortable => :reviews_count
end

这篇关于ActiveAdmin:按关联计数排序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆