gpt4 book ai didi

ruby-on-rails - Rails 中是否有惰性 select_all 选项?

转载 作者:太空宇宙 更新时间:2023-11-03 16:43:08 26 4
gpt4 key购买 nike

我有一个复杂的查询需要运行,它可能会产生一个很大的结果集。我需要线性迭代此结果集以处理一些数字。

我正在这样执行查询:

ActiveRecord::Base.connection.select_all(query)

find_in_batches 不适用于我的用例,因为按自定义顺序获取记录很重要。此外,我的查询返回了一些不属于任何模型的字段,因此我需要将记录作为哈希值获取。

问题是,select_all 并不懒惰(据我所知)。它将所有记录加载到内存中。 Rails 是否有办法延迟获取自定义 SQL 查询的结果? .lazy 在这里似乎不适用,因为我需要对结果进行自定义排序。

这在其他语言(C#、Haskell、JavaScript)中是可能的,因此在 Ruby 中似乎也是可能的。

最佳答案

不确定,但也许您要求的是 eager_load 或预加载。 http://blog.arkency.com/2013/12/rails4-preloading/

希望对您有所帮助。

关于ruby-on-rails - Rails 中是否有惰性 select_all 选项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40404214/

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