On Tuesday, 12 February 2013 20:29:49 UTC-5, Rafael C. de Almeida wrote:
>
> Hello,
>
> Have you guys noticed that conditional validation with 
> validates_associated does not work well when you are creating a new record?
>
> Consider this gist: https://gist.github.com/aflag/4780225 
>
> The Lawyer class has validates_associated on address conditioned on 
> whether the Lawyer data comes from a known source or not. So, if 
> lawyer.source equals to some string, then lawyer.address must not be 
> validated. However, if I'm trying to create a new record, it is validated 
> regardless of whether source is nil or not. Is it expected to behave like 
> that? Is that a bug?
>
>
The behavior is intentional, though perhaps not documented as well as it 
should be. It has to do with the autosave behavior for has_many on new 
records - the part that enables you to build a new record, add some unsaved 
child records (phones, etc in your example) and then save the parent object 
and get all the others saved as well.

You should be able to turn off this validation by passing 'validate: false' 
to your has_many associations as needed.

--Matt Jones 

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to rubyonrails-talk+unsubscr...@googlegroups.com.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msg/rubyonrails-talk/-/b2SZ1TKmRasJ.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to