Ruby on rails 3.2 如何覆盖active admin 0.5.0的作用域_集合中的默认排序顺序

Ruby on rails 3.2 如何覆盖active admin 0.5.0的作用域_集合中的默认排序顺序,ruby-on-rails-3.2,activeadmin,Ruby On Rails 3.2,Activeadmin,我的events.rb中有以下代码。默认情况下,我将排序顺序设置为在描述处更新 但如果url为,则有一个参数ride\u id(http://localhost:3000/admin/events?ride_id=3009)我需要根据asc创建的_对其进行排序 它不起作用。它仍然会在排序顺序更新的情况下获取结果。如何才能做到这一点。请帮忙 下面的代码在我使用的早期版本的active admin上运行,但是当我将其更新为0.5.0时,我遇到了这个问题 ActiveAdmin.register Ev

我的events.rb中有以下代码。默认情况下,我将排序顺序设置为在描述处更新

但如果url为,则有一个参数ride\u id(http://localhost:3000/admin/events?ride_id=3009)我需要根据asc创建的_对其进行排序

它不起作用。它仍然会在排序顺序更新的情况下获取结果。如何才能做到这一点。请帮忙

下面的代码在我使用的早期版本的active admin上运行,但是当我将其更新为0.5.0时,我遇到了这个问题

ActiveAdmin.register Event do
  config.sort_order = 'updated_at_desc'
  controller do
    def scoped_collection
      if params[:ride_id].present?
        end_of_association_chain.select('events.*').where('events.booking_id = ?', params[:ride_id]).order('created_at asc')
      else
       end_of_association_chain.select('events.*')
    end
  end
end
结束

我还使用了reorder函数

end_of_association_chain.select('events.*').where('events.booking_id = ?', params[:ride_id]).reorder('created_at asc')

尽管如此,我仍然无法通过更新的\u at \u desc来覆盖默认排序。请帮助。

如果您在某处进行设置,请使用以下内容:

default_scope order: '... DESC'
你可以用

.unscoped
像这样:

end_of_association_chain.select('events.*').unscoped.where...
至少这是我解决类似问题的方法

请注意,下面的帖子指出,使用default_scope是一个坏主意,这正是因为我/我们所经历的:

我希望这有帮助,
瑟玛尔文