gpt4 book ai didi

ruby-on-rails-3.2 - 如何覆盖事件管理员 0.5.0 的 scoped_collection 中的默认排序顺序

转载 作者:行者123 更新时间:2023-12-04 08:59:08 24 4
gpt4 key购买 nike

我的 events.rb 中有以下代码。默认情况下,我将 sort_order 设置为 updated_at_desc。

但是如果 url 有一个参数 ride_id (http://localhost:3000/admin/events?ride_id=3009) 我需要根据 created_at asc 对其进行排序。

它不起作用。它仍然使用 sort_order updated_at_desc 获取结果。如何才能做到这一点。请帮忙。

下面的代码适用于我使用的以前版本的 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')

我仍然无法通过 updated_at_desc 覆盖默认排序。请帮忙。

最佳答案

如果你在某处设置使用类似的东西:

default_scope order: '... DESC'

你可以使用

.unscoped

像这样:

end_of_association_chain.select('events.*').unscoped.where...

至少那是解决我的类似问题的原因。

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

http://pragdave.blogs.pragprog.com/pragdave/2012/03/be-careful-using-default_scope-and-order.html

希望对你有帮助,
马尔文

关于ruby-on-rails-3.2 - 如何覆盖事件管理员 0.5.0 的 scoped_collection 中的默认排序顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13373859/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com