【问题标题】:Lazily load columns in ActiveRecord在 ActiveRecord 中延迟加载列
【发布时间】:2011-11-05 16:07:00
【问题描述】:

所以我一直在做一些研究,但还没有找到一个好的解决方案。我试图避免在 ActiveRecord 模型中加载很少使用的列。

这是我现实世界的问题:我有一个 Accounts 表:

create_table "accounts", :force => true do |t|
  t.string   "name"
  t.text "policies" # this can be a lot of data
end

我一直从数据库中提取帐户,并且很少需要策略字段。我担心的是开销。这是我传输的额外数据,我很少需要。

我如何默认 rails 仅在需要时提取名称列并抓取策略列?

我知道 DataMapper 有一个解决方案,称为属性的“延迟加载”。 ActiveRecord 中是否有标准或普遍接受的解决方案?

感谢您的帮助。

【问题讨论】:

    标签: activerecord lazy-loading


    【解决方案1】:

    activerecord-lazy-attributes 库可以提供您需要的功能。

    自述文件摘录:

    此 ActiveRecord 扩展允许定义延迟加载的属性。它的主要目的是避免在每次 SELECT 时加载大列(例如 BLOB)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-18
      • 2011-09-07
      • 2015-06-21
      • 2018-11-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多