I heard a rumor that ActiveRecord is barely being maintained anymore, though I don't know if that's true. The :validate option is new and validates_associated is old. I assume they expect to move to the :validate option but it's odd that they'd have it true by default. Thanks for the info on this one.
Martin Emde Tw: @martinemde On Mon, Jul 13, 2009 at 9:30 PM, Glenn Little <[email protected]> wrote: > > > Interesting. Looks like has_and_belongs_to_many is also true by default, > and has_one and belongs_to are *false* by default. This all strikes me > as at least a little bit arbitrary and possibly misleading. Why "has_many" > but not "has_one"? And why is there a "validates_associated" when clearly > you have to just call the :validate option to do the inverse? > > Any philosophical thoughts on why this might be this way? Or even > practical > ones :-) > > -glenn > > Neal Clark wrote: > > that's interesting. i would have expected what you did too, but that's > > not the default behavior of has_many. > > > > > http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html > > > > has_many(association_id, options = {}, &extension) > > ... > > Supported options > > ... > > :validate > > If false, don‘t validate the associated objects when saving > > the parent object. true by default. > > > > so looks like has_many tasks :default => false will get what you're > > looking for. > > > > > > On Jul 13, 2009, at 6:15 PM, Glenn Little wrote: > > > >> I've got something like this: > >> > >> Project has_many tasks > >> Task belongs_to project > >> > >> I have simple validation in each. The problem is, if I do something > >> like: > >> > >> p = Project.new > >> p.tasks.build # <-- not valid because of blank field > >> p.tasks.build > >> p.tasks.build > >> > >> p.valid? -> false > >> > >> All good so far. But if I look at the errors on p: > >> > >> y p.errors > >> > >> I see something like: > >> > >> errors: > >> name: > >> - can't be blank # this is fine > >> tasks: > >> - is invalid > >> - is invalid > >> - is invalid # these, not so much > >> > >> I do not have a call to "validates_associated" in my Project model, so > >> why is it picking up errors on the associated objects? > >> > >> Thanks in advance... > >> > >> -glenn > >> > > > > > > > > > > > --~--~---------~--~----~------------~-------~--~----~ SD Ruby mailing list [email protected] http://groups.google.com/group/sdruby -~----------~----~----~----~------~----~------~--~---
