所以这是一个非常奇怪的问题,我不知道发生了什么。基于我们应用程序中的问题,每次您从数据库中读取关联时,我们都希望返回has_many关联,并对其应用默认顺序。我向致力于此问题的开发人员建议,将以下内容添加到关联中(这样做):
has_many :shipment_items, -> { order(product_id: :desc) }, dependent: :destroy
那似乎还好吧?我猜不是。我注意到我们的一些测试失败了。我的运输模型中有一个方法,可以根据模型在特定时间所处的状态来在模型上设置属性。当我在测试中记录状态状态并应用顺序时,它将保持默认状态,因为我使用bang方法将其手动移至后续状态。
因此,我进行了更多调查,发现实际功能现在也已损坏。如果我使用与我测试相同的过程来记录状态,则它将保持默认状态,并将其记录在罪魁祸首方法中会以这种方式进行记录,但是当它实际完成请求并重定向到预期的完成页面时,数据库处于我希望其处于的正确状态。有一些中间步骤取决于特定状态,并且这些步骤还会产生关联上的lambda错误的结果。
如果我从关联中删除默认的订购lambda,此问题将消失。我消除了关联结果的顺序与之相关的可能性(对象的顺序应与结果无关),因此我感觉到这是AASM中非常奇怪的错误。任何帮助将不胜感激!