我们正在使用Rails 3.2.5
以下是我们使用的代码:
class MR < ActiveRecord::Base
has_many :codes
def test
codes.each { |c| c.delete }
end
def asdf
codes.size
end
end
如果我这样称呼:
mr = MR.create
# imagine mr has 5 codes
mr.test
# confirmed that 5 codes have been deleted from database using Sequel Pro
mr.asdf => 5
mr.reload.asdf => 0
删除其中的对象时,是否始终必须重新加载关联?我应该使用不同的方法吗?我以为毁灭会这样做,但它不能解决问题。
答案 0 :(得分:5)
使用#count
代替#size
#size
缓存值。 #count
每次都会运行查询。
答案 1 :(得分:0)
您可以直接从数据库中获取数据。而不是缓存
def asdf
codes(true).size
end