如此处所述:
http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html
inverse_of 似乎告诉 Rails 缓存内存中的关联并最小化数据库查询。他们的例子是:
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
他们立即跟进:
for `belongs_to` associations `has_many` inverse associations are ignored.
所以我有几个问题。
has_many
对于 a是否忽略逆关联belongs_to
?如果是这样,他们的例子有什么意义?它不应该什么都不做吗?据我所知(假设它做任何事情)所有这些允许做的事情是:
dungeon.traps.first.dungeon
最后调用
.dungeon
不生成一个全新的查询,而只是达到内存中的关联。假设这是正确的,我为什么不想要这种行为?为什么我不坚持inverse_of:
每一个协会?