Rails reverse_of

xiaoronglv · 2012年10月15日 · 2140 次阅读
class Dungeon < ActiveRecord::Base
  has_many :traps, :inverse_of => :dungeon
  has_one :evil_wizard, :inverse_of => :dungeon
end

class Trap < ActiveRecord::Base
  belongs_to :dungeon, :inverse_of => :traps
end

class EvilWizard < ActiveRecord::Base
  belongs_to :dungeon, :inverse_of => :evil_wizard
end

stackoverflow 上的解释:dungeon.traps.first.dungeon 不会再发起一次查询,而是直接调用 dungeon 了。

我的问题时,什么场景下会用到,为什么 ruby-china 下的每一个 model,但凡出现 belongs_to 都加了这个参数。

比如:

class Topic < ActiveRecord::Base
    belongs_to :user, :counter_cache => true, :inverse_of => :topics
......
......

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