Hi all !
I've been meaning to ask for a while now. Please look at association_proxy: http://dev.rubyonrails.org/browser/trunk/activerecord/lib/active_record/associations/association_proxy.rb#L105
Why are we only setting the primary key ? Why aren't we also copying the reference to the owner object in the record ?
The following fails:
class Recipient < AR::B belongs_to :account validates_presence_of :account_id before_validation {|r| r.account = r.email.account if r.email } end
class Email < AR::B has_many :recipients belongs_to :account end
email = Email.new(...) email.recipients.build(...) email.save!
ActiveRecord::RecordInvalid: Validation failed: Recipients is invalid
The problem is actually caused by the fact that AR doesn't copy the owner object in the newly instantiated has_many. Patching 1.2-stable with the following:
Index: lib/active_record/associations/association_proxy.rb