Я обнаружил довольно странное поведение активной записи рельсов.Это происходит в рельсах 2.3.9, а не в рельсах 3.
Вот как это можно воспроизвести.(Или просто клонируемый пример репозитория github: git clone git: //github.com/gonchs/rails-2.3.9-odd-association-behavior-example.git)
class User < ActiveRecord::Base
has_one :parent
has_one :contact, :through => :parent
end
class Contact < ActiveRecord::Base
has_one :parent
has_one :user, :through => :parent
end
class Parent < ActiveRecord::Base
belongs_to :user
belongs_to :contact
end
сам.В первом примере все идет как надо.Во втором случае он ведет себя неожиданно.
Откройте скрипт / консоль и выполните:
user = User.new
user.contact = Contact.new
user.parent = Parent.new
user.contact
=> #<Contact id: nil, created_at: nil, updated_at: nil>
user = User.new
user.parent = Parent.new
user.contact = Contact.new
user.contact
=> nil
Есть идеи, почему это происходит?Это ошибка или я что-то здесь упускаю?