Как переопределить default_scope в ActiveAdmin в Rails

В ресурсе, зарегистрированном в ActiveAdmin, для модели определена следующая default_scope:

default_scope :order => 'activities.updated_at DESC'

Это, по-видимому, не позволяет мне изменить сортировку на индексной странице ресурса, щелкнув заголовки столбцов. Есть ли способ сохранить эту область по умолчанию, но заставить работать сортировку Active Admin?


person John    schedule 27.02.2012    source источник


Ответы (4)


  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/

person okliv    schedule 19.09.2012

Попробуйте это решение.

#/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
person Nadeem Yasin    schedule 08.10.2013

Вы пытаетесь определить область действий или просто упорядочить их, потому что этот вызов только упорядочивает их, а на самом деле не определяет область запроса в самой строгой идее.

Из того, что я знаю о ActiveAdmin и из того, что говорится в их документации, вам, вероятно, следует настроить его следующим образом.

  class Activities < ActiveRecord::Base
    default_scope lambda { where :updated_at => true }
  end
person Justin Herrick    schedule 27.02.2012

person    schedule
comment
это не работает для меня, кажется, оно все еще ограничено. - person denodster; 06.02.2020
comment
оказывается, я снова определил scoped_collection дальше по файлу. - person denodster; 06.02.2020