为此花了一个工作日。
我有
class Box
has_many :users, :through => :subscriptions
end
我也有使用多个 INSERT 快速完成工作的自定义insert_new_users
和方法。associate_with(new_users)
无论如何,他们工作得很好。我在“associate_with”方法的末尾也有这一行:
def associate_with
# mysql INSERT here
self.users(true) # Should force reload
end
它在测试环境(控制器和模型测试)中运行时按预期工作,如果我删除true
强制重新加载的参数,它会按预期失败。script/console
如果我update_attributes
是模型,它也可以在开发中工作。但是当我尝试update_attributes
从控制器中进行开发或生产时失败。它根本不会重新加载关联,我可以在日志中看到它,其中显示此查询的“CACHE (0.0ms)”。
奇怪的是 - 它以前工作过,但由于某些原因,我无法确定它停止工作的那一刻。我希望也许有人知道这怎么可能。