使用Active Admin框架,我可以添加一个“用户”列,通过执行以下操作来计算特定“俱乐部”的计数:
ActiveAdmin.register Club do
index do
column 'Users' do |club|
club.users.count
end
end
end
我能以某种方式对此进行排序吗?
答案 0 :(得分:4)
您可以在User
型号belongs_to :club
上添加counter cache column,然后将索引设为:
ActiveAdmin.register Club do
index do
column 'Users', sortable: :users_count do |club|
club.users.count
end
end
end
答案 1 :(得分:0)
另一种选择是让您的嵌套资源加入并提供特定的列名称。在我的示例中,问题有很多答案示例。
controller do
def scoped_collection
# super.includes(:answer_examples)
super.joins(
%(LEFT OUTER JOIN "answer_examples"
ON ("questions"."id" = "answer_examples"."question_id")))
.select("questions.*, COUNT(answer_examples.id) AS answer_examples_count")
.group("questions.id")
end
end
然后你可以这样做:
column "Number of examples", sortable: "answer_examples_count" do |question|
question.answer_examples.count
end