ActiveRecord订单不起作用

bev*_*anb 2 activerecord ruby-on-rails

在我的控制器中,在为“子级”重新分配优先级后,这按新顺序列出了子级: @child.parent.children.sort_by{|g| g.priority }

令人惊讶的是,这不起作用: @child.parent.children.order(priority: :asc)

为什么不起作用.order?它没有正确排序,而是在运行此操作之前按PREVIOUS顺序排序,因此我假设它使用的是缓存结果(查询在该操作之前运行)。如果确实存在问题,那么如何破坏该缓存?@child.reload重新尝试优先之后,我尝试了一下。

小智 6

如果您对children关联有一些订购,则可以尝试使用reorder新的订购:

@child.parent.children.reorder(priority: :asc)
Run Code Online (Sandbox Code Playgroud)