在使用ActiveAdmin注册的资源中,我为模型定义了以下default_scope:
default_scope :order => 'activities.updated_at DESC'
这显然阻止我通过单击列标题来更改资源索引页面上的排序。有没有办法保持这个默认范围,但让Active Admin排序工作?
答案 0 :(得分:37)
ActiveAdmin.register Post do
controller do
def scoped_collection
Post.unscoped
end
end
end
答案 1 :(得分:2)
scope('all', default: true) { |scope| scope.where(...) }
答案 2 :(得分:1)
试试这个解决方案。
#/admin/user.rb
controller do
# for index page
def active_admin_collection
User.unscoped { super }
end
# for show, edit
def resource
User.unscoped { super }
end
end
答案 3 :(得分:-1)
您是尝试调整活动的范围还是只是对它们进行排序,因为此调用仅对它们进行排序,实际上并不是在最严格的想法中确定查询的范围。
据我所知ActiveAdmin
以及他们的文档说明,您应该将其设置为这样。
class Activities < ActiveRecord::Base
default_scope lambda { where :updated_at => true }
end