使用Rails 4和最新的Active Admin。我正在尝试为我的Submission
模型构建一个Active Admin索引页面。简而言之,它是一个竞赛应用程序,其中一个提交有很多分数。在Score
模型中,有一个名为:total_score
的字段,其中法官输入该条目的分数。
很自然地,为了找到提交的最终分数,我需要平均所有孩子的分数:
# In my Submission model
def calculate_final_score
self.scores.average(:total_score)
end
然后返回平均数。当然,我想在我的Submission Active Admin索引页面中显示这个数字。我使用这段代码(它是一个表格式的索引页面):
column "Score", sortable: :calculate_final_score do |submission|
submission.calculate_final_score
end
虽然它显示的值很好,但它不知道如何对此自定义方法进行排序。就像,如果我告诉它按该列降序排序,它将命令它为10.0,6.0,3.75,8.0,9.0等。如何正确排序?
其次,它也不知道如何过滤此自定义方法列。我输入了代码filter :calculate_final_score
,但它根本没有在页面上显示该过滤器。这是Active Admin的限制还是有办法使该过滤器正常工作?谢谢你的帮助。
答案 0 :(得分:0)
这是以下问题的重复:
然而,这些问题并没有真正回答active_admin中发生的事情,以及为什么这些事情无效。可以在ActiveAdmin::OrderClause
找到原因。
它仅支持模型上的列和关联模型上的列。