(Rails 2.3.2, OS X 10.5, MySQL 5.0.x) I''m seeing some odd behavior that makes no sense to me with respect to adding new empty records to an ActiveRecord object. Assuming (shortened for email): class Article < AR::Base has_many :pages end class Pages < AR::Base belongs_to :pages end If I add a new Page to an Article (with no attribute data), then of course we would expect to see no validation errors because .new is not supposed to run through validation. So, this works as expected (this is my literal short loop test code): test_object = Article.new test_object.pages << Page.new test_offset = test_object.pages.size - 1 test_errors = test_object.pages[test_offset].errors.size # test_errors -> 0 However, this does not work as expected (literal short loop code for testing): test_object = Article.find(:first, :conditions => ["rcrd_id = ?", "abc123"]) test_object.pages << Page.new test_offset = test_object.pages.size - 1 test_errors = test_object.pages[test_offset].errors.size # test_errors -> 4, which correlates to expected errors if I tried to save an empty record # I am expecting to see 0 I have tested this on two completely different sets of models, and each shows the same behavior. I have combed through all my callbacks, even commented them out. Nothing in there appears to be the problem (nothing forcing a save that I can see). I have this short loop code inside a dead-simple controller index method with no other code that could interfere AFAICT. This seems too obvious to be a Rails bug, so I am assuming it''s my code somehow, somewhere. Any ideas on what else to look at? -- gw -- Posted via http://www.ruby-forum.com/.
Greg Willits wrote:> Assuming (shortened for email): > > class Article < AR::Base > has_many :pages > end > class Pages < AR::Base > belongs_to :pages > endOops. Email typo -- of course that should be: class Pages < AR::Base belongs_to :article end -- gw -- Posted via http://www.ruby-forum.com/.
On Apr 30, 6:46 pm, Greg Willits <rails-mailing-l...-ARtvInVfO7ksV2N9l4h3zg@public.gmane.org> wrote:> (Rails 2.3.2, OS X 10.5, MySQL 5.0.x) > > I have combed through all my callbacks, even commented them out. Nothing > in there appears to be the problem (nothing forcing a save that I can > see). >"Adding an object to a collection (has_many or has_and_belongs_to_many) automatically saves that object, except if the parent object (the owner of the collection) is not yet stored in the database" (http://api.rubyonrails.org/classes/ActiveRecord/ Associations/ClassMethods.html) Fred> I have this short loop code inside a dead-simple controller index method > with no other code that could interfere AFAICT. > > This seems too obvious to be a Rails bug, so I am assuming it''s my code > somehow, somewhere. > > Any ideas on what else to look at? > > -- gw > -- > Posted viahttp://www.ruby-forum.com/.
Frederick Cheung wrote:> On Apr 30, 6:46�pm, Greg Willits <rails-mailing-l...-ARtvInVfO7m5VldFQK4jKA@public.gmane.orgt> > wrote: >> (Rails 2.3.2, �OS X 10.5, MySQL 5.0.x) >> >> I have combed through all my callbacks, even commented them out. Nothing >> in there appears to be the problem (nothing forcing a save that I can >> see). >> > > "Adding an object to a collection (has_many or > has_and_belongs_to_many) automatically saves that object, except if > the parent object (the owner of the collection) is not yet stored in > the database" (http://api.rubyonrails.org/classes/ActiveRecord/ > Associations/ClassMethods.html) > > FredMost unfortuneate (but thanks). -- gw -- Posted via http://www.ruby-forum.com/.