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