在 Rails 中延迟预加载部分关系列

Lazy preloading only some columns of relations in Rails

提问人:meraioth ulloa 提问时间:10/24/2023 最后编辑:meraioth ulloa 更新时间:10/24/2023 访问量:24

问:

我目前正在使用 ar_lazy_preload Gem 进行延迟预加载,但有时我只需要预加载这些关系的某些属性,我想知道是否有办法使用 select 仅检索某些列,也许使用 Arel?(我不是很熟悉)

举个例子: 用户 - 人:1 对 1 关系

User.lazy_preload(:p erson).all ,但从人与人的关系来看,只需要出生日期

我发现的最接近的问题是不适用于ar_lazy_preload

我希望延迟预加载,但使用一个查询,该查询使用选择仅检索我需要的内容

users = User.lazy_preload(person: [:date_of_birth]).all进行 1 次查询

Select * from users users.first.person.date_of_birth进行另一个查询

Select people.date_of_birth from people where people.user_id in ($ids from first query)

Ruby-on-Rails 延迟评估 预加载

评论


答: 暂无答案