gpt4 book ai didi

ruby-on-rails - Rails : How find array of ids with . 在哪里排序?

转载 作者:行者123 更新时间:2023-12-03 08:17:19 25 4
gpt4 key购买 nike

我正在尝试使用 .where 查找商店列表,但我也尝试将它们按照相同的 ids 数组进行排序。

  ids = ["4", "15", "10", "20", "1"]
stores = Store.published.where(id: ids)

看起来商店是按 id 的升序返回的,就像[{id:20}、{id:15} {id:10}、{id:4}、{id:1}]。我希望保持返回的商店的排序方式与 ids 的排序方式相同。另请注意,每个商店中的 id 都是整数,而 ids 数组中的 id 是字符串。

最佳答案

因为数字是记录的 ID,您可以简单地使用:

ids = ["4", "15", "10", "20", "1"]
stores = Store.find(ids)

这有效是因为 find也接受 ID 列表,当提供列表时,find 将以与列表中相同的顺序返回记录。

Ruby on Rails 7.0您将能够将 wherein_order_of 结合使用,其优点是如果未找到记录,则不会引发错误,并且您可以按其他列及其列进行排序值也:

ids = ["4", "15", "10", "20", "1"]
stores = Store.where(id: ids).in_order_of(:id, ids)

关于ruby-on-rails - Rails : How find array of ids with . 在哪里排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68931004/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com