Flo*_*aud 4 ruby arrays activerecord ruby-on-rails
只是一个问题,array = [19, 5, 1, 4]
当我调用 where 来Delivery.where(id: array.map(&:id))
具有活动记录关系而不是数组时,我有一个带有一些 id 的数组, \xe2\x80\x9cwhere\xe2\x80\x9d 语句正在对 id 进行排序并给我所有按 id 排序的对象:\n #<ActiveRecord::Relation [#<Delivery id: 1, ... >, #<Delivery id: 4, ... >, #<Delivery id: 5, ... >, #<Delivery id: 19, ... >
\n有人知道如何保持原始顺序吗?
谢谢 !
\nActiveRecord.find
\xe2\x80\x93 当使用数组 \xe2\x80\x93 调用时,将自动以完全相同的顺序返回记录。
只需将您的查询更改为:
\nDelivery.find(array.map(&:id))\n
Run Code Online (Sandbox Code Playgroud)\n引用文档:
\n\n\n注意:返回的记录与您提供的 id 的顺序相同。[...]
\n