Ruby on rails 3.2 如何覆盖active admin 0.5.0的作用域_集合中的默认排序顺序
我的events.rb中有以下代码。默认情况下,我将排序顺序设置为在描述处更新 但如果url为,则有一个参数ride\u id(http://localhost:3000/admin/events?ride_id=3009)我需要根据asc创建的_对其进行排序 它不起作用。它仍然会在排序顺序更新的情况下获取结果。如何才能做到这一点。请帮忙 下面的代码在我使用的早期版本的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
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是一个坏主意,这正是因为我/我们所经历的:
我希望这有帮助,瑟玛尔文