如何通过ActiveRecord在Ruby on Rails中查询特定订单信息?

2026-04-28 00:521阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计318个文字,预计阅读时间需要2分钟。

如何通过ActiveRecord在Ruby on Rails中查询特定订单信息?

我在使用 Ruby on Rails / ActiveRecord,并且正在使用 ActiveRecord 进行数据库操作。

我正在使用 Ruby on Rails / ActiveRecord,并且在使用ActiveRecord #find调用时遇到问题.我在数据库中存储了最近查看过的文档ID的序列化数组. ID按上次查看时的降序存储,因此最近查看的文档ID是数组中的第一个.该阵列最多包含10个ID.

到现在为止还挺好.问题是ActiveRecord#find(Array)似乎忽略了思想在数组中出现的顺序.因此,如果我键入Document.find([1,2,3]),我得到的结果与Document.find([3,2,1])相同.

那么我的问题是:我如何得到一个ActiveRecord结果数组,其顺序与我传递给#find的ID相同?或者,如果ActiveRecord不能直接实现这一点,那么如何在事后对生成的数组进行排序?

非常感谢人们可以贡献的任何答案!

ActiveRecord是数据库的接口,它按照数据库返回的顺序将记录返回给您.如果您不提供“订单”参数,则返回的订单(有效)是随机的.

如果您的订单是按ID升序或降序:

如何通过ActiveRecord在Ruby on Rails中查询特定订单信息?

results = SomeModelName.find([1,2,3], :order => "id") # ascending order results = SomeModelName.find([1,2,3], :order => "id desc") # descending order

如果id顺序不是升序或降序:

ids = [1, 3, 2] r = SomeModelName.find(ids) results = ids.map{|id| r.detect{|each| each.id == id}}

本文共计318个文字,预计阅读时间需要2分钟。

如何通过ActiveRecord在Ruby on Rails中查询特定订单信息?

我在使用 Ruby on Rails / ActiveRecord,并且正在使用 ActiveRecord 进行数据库操作。

我正在使用 Ruby on Rails / ActiveRecord,并且在使用ActiveRecord #find调用时遇到问题.我在数据库中存储了最近查看过的文档ID的序列化数组. ID按上次查看时的降序存储,因此最近查看的文档ID是数组中的第一个.该阵列最多包含10个ID.

到现在为止还挺好.问题是ActiveRecord#find(Array)似乎忽略了思想在数组中出现的顺序.因此,如果我键入Document.find([1,2,3]),我得到的结果与Document.find([3,2,1])相同.

那么我的问题是:我如何得到一个ActiveRecord结果数组,其顺序与我传递给#find的ID相同?或者,如果ActiveRecord不能直接实现这一点,那么如何在事后对生成的数组进行排序?

非常感谢人们可以贡献的任何答案!

ActiveRecord是数据库的接口,它按照数据库返回的顺序将记录返回给您.如果您不提供“订单”参数,则返回的订单(有效)是随机的.

如果您的订单是按ID升序或降序:

如何通过ActiveRecord在Ruby on Rails中查询特定订单信息?

results = SomeModelName.find([1,2,3], :order => "id") # ascending order results = SomeModelName.find([1,2,3], :order => "id desc") # descending order

如果id顺序不是升序或降序:

ids = [1, 3, 2] r = SomeModelName.find(ids) results = ids.map{|id| r.detect{|each| each.id == id}}