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
class EvilWizard < ActiveRecord::Base
belongs_to :dungeon, :inverse_of => :evil_wizard
end
Dungeon.create!.traps.create!
d = Dungeon.first
t = d.traps.first
d.level == t.dungeon.level # => true
d.level = 10
次の式は false を返しますが、true を返すことが期待されていました (少なくとも Rails 3.1 の場合)。
d.level == t.dungeon.level # => false
何が問題なの:inverse_of
ですか?