2011-08-28 98 views
2

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

这里是我的现实世界中的问题:我有一个帐户表:

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

我拉帐户数据库中的所有时间,我很少需要的政策领域。我的担心是开销。这是我正在转移的额外数据,我很少需要。

如何在我需要时默认导轨只拉取名称列并获取策略列?

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

感谢您的帮助。

回答

0

activerecord-lazy-attributes库可能会提供您需要的功能。从自述

摘录:

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