Rails 如何在 ActiveRecord 的关联链条中避免重复 touch

snowhs · 2013年01月10日 · 最后由 snowhs 回复于 2013年01月24日 · 2529 次阅读

嗨,各位,请教一个问题。

假设有:( < ActiveRecord::Base 等等在这个例子里无关紧要的代码就省略了 )

class Project
end

class Member
  belongs_to :project, touch: true
end

class Todolist
  belongs_to :project, touch: true
end

class Todo
  belongs_to :todolist, touch: true
  belongs_to :member, touch: true
end

那么,当一个 Todo 实例保存时,关联的 Project 将会被 touch 两次。 有什么办法避免么?

支持 markdown 的多行代码语法,赞!

喂喂!我刚刚发个帖子就 164 次阅读,这个太假了吧!

哈哈哈,之前丢失数据的访问量,对应上编号了。

#3 楼 @huacnlee 好吧...这是我潜水多年之后专门为了点丢失数据那个帖子的"喜欢"去注册了帐号的报应

我觉得不用解决。

当数据库性能发生瓶颈的时候再解决这个问题吧,到时候也仅仅是 去掉 touch: true 加点 after_commit update_all 之类的

6 楼的想法和我现在实际的处理方法是一致的。只是出于洁癖想更逼近完美而已。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号