2011-08-28 97 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)。