Ruby on rails 如何让活动管理员自定义排序工作?

Ruby on rails 如何让活动管理员自定义排序工作?,ruby-on-rails,ruby,activeadmin,Ruby On Rails,Ruby,Activeadmin,我试图使用中描述的自定义排序功能,但似乎无法将其用于非常简单的案例。我的代码的回购协议如下:。值得一提的是,我使用了较旧版本的Rails(4.2.5)和Active Admin(1.1.0) 在上面提到的我的报告中,我的AdminUser模型如下所示: class AdminUser < ActiveRecord::Base # Include default devise modules. Others available are: # :confirmable, :lockab

我试图使用中描述的自定义排序功能,但似乎无法将其用于非常简单的案例。我的代码的回购协议如下:。值得一提的是,我使用了较旧版本的Rails(4.2.5)和Active Admin(1.1.0)

在上面提到的我的报告中,我的AdminUser模型如下所示:

class AdminUser < ActiveRecord::Base
  # Include default devise modules. Others available are:
  # :confirmable, :lockable, :timeoutable, :trackable and :omniauthable
  devise :database_authenticatable, 
         :recoverable, :rememberable, :validatable

  has_many :gold_stars
end
class GoldStar < ActiveRecord::Base
  validates :admin_user_id, presence: true
  belongs_to :admin_user
end
但是,除非我包含sortable:true,否则该列不会被启用为可排序,这使我认为要么我做错了什么,要么某个操作不正常。上面的设置似乎没有使它与默认情况下的排序有任何不同。查看Rails日志,看起来SQL查询并没有被修改,尽管params[:order]中填充了类似于Proc的内容,大致是“Proc:0x00007fb3c40c8080@/Users/user/active\u admin\u custom\u sorting/app/admin/admin\u user.rb:12_desc”

order_by(:gold_stars) do |order_clause|
  ['COUNT(gold_stars.id)', order_clause.to_sql].join(' ')
end

index do
  column :gold_stars, sortable: true do |admin_user|
    admin_user.gold_stars.count
  end
end