Ruby on rails 具有作用域混合排序的Rails排序关联

Ruby on rails 具有作用域混合排序的Rails排序关联,ruby-on-rails,ruby,Ruby On Rails,Ruby,在CashTransaction模型中,我得到了默认范围: class CashTransaction < ApplicationRecord belongs_to :cashbook default_scope { order(id_number: :desc) } end 我在代码的其他位置使用此方法创建对虾表和许多其他相关内容: def transaction_items @last_position = parsed_cash_transactions.

CashTransaction
模型中,我得到了默认范围:

class CashTransaction < ApplicationRecord
   belongs_to :cashbook

   default_scope { order(id_number: :desc) }
end
我在代码的其他位置使用此方法创建对虾表和许多其他相关内容:

  def transaction_items
    @last_position = parsed_cash_transactions.last[:position]

    parsed_cash_transactions.each do |cash_transaction|
    # ...
    # some other actions
  end

问题是默认范围在这里不起作用-大多数都是正确的,但是
transaction\u items
方法会返回随机混合的数据(例如,我的位置2在10,11在200左右,等等…)。如何让这些
事务项
数据按
id\u编号
排序?

默认范围
可能是Rails最糟糕的部分之一,应该不惜一切代价避免*

如果您经常进行一些特殊的排序,那么您可以创建一个自定义范围

scope:ordered,->{order(id\u number::desc)}
#
现金簿。现金交易。订购

*当然这有点夸张,但事实是,
default\u scope
是你必须非常小心的事情,因为它处理关联和其他东西的方式非常违反直觉


默认范围
可能是Rails最糟糕的部分之一,应该不惜一切代价避免*

如果您经常进行一些特殊的排序,那么您可以创建一个自定义范围

scope:ordered,->{order(id\u number::desc)}
#
现金簿。现金交易。订购

*当然这有点夸张,但事实是,
default\u scope
是你必须非常小心的事情,因为它处理关联和其他东西的方式非常违反直觉

  def transaction_items
    @last_position = parsed_cash_transactions.last[:position]

    parsed_cash_transactions.each do |cash_transaction|
    # ...
    # some other actions
  end