本文介绍了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:按关联计数排序
发布评论