Ruby on rails 如何让活动管理员自定义排序工作?
我试图使用中描述的自定义排序功能,但似乎无法将其用于非常简单的案例。我的代码的回购协议如下:。值得一提的是,我使用了较旧版本的Rails(4.2.5)和Active Admin(1.1.0) 在上面提到的我的报告中,我的AdminUser模型如下所示: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
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