Hey Josh, I think this patch by José Valim, which is in my queue to work on this week, will solve this problem for you: https://rails.lighthouseapp.com/projects/8994/tickets/2904-avoid-copying-errors-from-child-to-parent-on-autosave
Cheers, Eloy On 9 sep 2009, at 19:36, Josh wrote: > > This line o' code in autosave_association.rb is a little bit weird > imo. > > attribute = "#{reflection.name}_#{attribute}" > > Line 252 on master at the moment. > > It's used in at least two places I can tell (I haven't looked very > hard), accepts_nested_attributes and validates_associated. The string > that is generated is then applied to #errors on the parent record as > the base name. So, for example: > > class Profile < AR::Base > has_one :address > accepts_nested_attributes_for :address > end > > class Address < AR::Base > validates_presence_of :city > end > > p = Profile.new > p.build_address > p.save > p.errors.full_messages > # => ['Address City is invalid'] > > #or something like that. > > The issue is that "Address City" is meaningless to our users. How > many of you label your "City" text field as "Address City" on your > "Profile" form? > > Was this added in order to disambiguate if the same attribute exists > on both the parent and the child? If so, can we do away with that? We > can't save bad developers from themselves. > > Changing the above line to > > attribute = "#{attribute}" > > only breaks a handful of tests and only in TestNestedAttributes and > TestAutosaveAssociation, so I don't think it's widely used. > > Thoughts? > > Thanks, > Josh > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Core" group. To post to this group, send email to rubyonrails-core@googlegroups.com To unsubscribe from this group, send email to rubyonrails-core+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/rubyonrails-core?hl=en -~----------~----~----~----~------~----~------~--~---