我有两个课程,Item
和Price
。我有一个Item
对象的缓存哈希表示,我想在更新时清除/创建,或者更新关联对象时。
在我的Item
课程中,我有:
在item.rb中:
before_update do
self.create_new_frags
end
但是,Rails认为它具有最新版本,因此价格值不会更新。我尝试过self.reload但它仍然无法正常工作。我怎么告诉这个实例它需要重新加载它的关联?这有点棘手,因为我无法重新加载所有内容,因为这是在before_update中,这样我就会丢失即将更新的内容。
在item.rb中:
def as_mig_hash type # part of create_new_frags
self.reload # didn't do anything
r={}
r[:id]=id
r[:header]=header
r[:detail]=detail
end
答案 0 :(得分:1)
调用reload
仅影响属性。如果要重新加载关联,则需要直接在关联上调用reload
。
<association>.reload