Hi ! I have these models:
class Invoice < AR::Base has_many :lines, :class_name => 'InvoiceLine' end class InvoiceLine < AR::Base belongs_to :invoice end This fails at the console: $ ruby script\console Loading development environment. >> invoice = Invoice.new => #<Invoice:0x3a76060 ...> >> line = invoice.lines.build => #<InvoiceItem:0x3a5d610 ...> >> invoice.save! ActiveRecord::RecordInvalid: Validation failed: Lines is invalid from ./script/../config/../config/../vendor/rails/activerecord/lib/active_record/validations.rb:736:in `save!' from (irb):3 >> puts line.errors.full_messages Invoice can't be blank I was under the impression that saving the parent should correctly save the children in has_many relationships. Of course, if I save the parent before the child, it works. But then I lose #new_record? Of course, AR::Base has an attribute named @new_record_before_save, but there are no accessors for it. http://dev.rubyonrails.org/browser/trunk/activerecord/lib/active_record/associations.rb#L93 seems to imply that the use case above will work, while http://dev.rubyonrails.org/browser/trunk/activerecord/lib/active_record/associations.rb#L279 says it won't work if "this object" is nil. "this object" is obviously not nil, but it hasn't received it's primary key yet. Question #1: Should saving the parent record correctly save the child record ? Question #2: Should we provide an accessor for @new_record_before_save Thanks ! -- François Beausoleil http://blog.teksol.info/
_______________________________________________ Rails-core mailing list Rails-core@lists.rubyonrails.org http://lists.rubyonrails.org/mailman/listinfo/rails-core