Как переопределить default_scope в ActiveAdmin в Rails
В ресурсе, зарегистрированном в ActiveAdmin, для модели определен следующий default_scope:
default_scope :order => 'activities.updated_at DESC'
Это, по-видимому, лишает меня возможности изменять сортировку на странице индекса ресурса, щелкая заголовки столбцов. Есть ли способ сохранить эту область по умолчанию, но заставить сортировку Active Admin работать?
5 ответов
ActiveAdmin.register Post do
controller do
def scoped_collection
Post.unscoped
end
end
end
Попробуйте это решение.
#/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
scope_to do
Class.new do
def self.cookies
Cookie.unscoped
end
end
end
больше здесь: http://blogs.burnsidedigital.com/2012/09/ignoring-default_scope-in-activeadmin/
Вы пытаетесь охватить действия или просто упорядочить их, потому что этот вызов только упорядочивает их, на самом деле это не ограничивает запрос самой строгой идеей.
Из того, что я знаю ActiveAdmin
и из того, что говорится в их документации, вы, вероятно, должны настроить это следующим образом.
class Activities < ActiveRecord::Base
default_scope lambda { where :updated_at => true }
end