所以我一直在做一些研究,但还没有找到一个很好的解决方案。我试图避免在ActiveRecord模型中加载很少使用的列。
这是我的真实世界问题:我有一个帐户表:
create_table "accounts", :force => true do |t|
t.string "name"
t.text "policies" # this can be a lot of data
end
我一直从数据库中提取帐户,我很少需要策略字段。我担心的是开销。这是我转移的额外数据,我很少需要。
如何将rails默认为仅拉取name列并在需要时获取策略列?
我知道DataMapper有一个解决方案,称为属性的“延迟加载”。在ActiveRecord中是否有标准或普遍接受的解决方案?
感谢您的帮助。
答案 0 :(得分:0)
activerecord-lazy-attributes库可能会提供您需要的功能。
摘自README:
此ActiveRecord扩展允许定义要延迟加载的属性。它的主要目的是避免每个SELECT加载大型列(例如BLOB)。