On Mar 23, 8:26 pm, jzimmek <jan.zim...-S0/GAf8tV78@public.gmane.org>
wrote:>
> u = User.new
> u.address = Address.new
> u.save
>
> NoMethodError: You have a nil object when you didn''t expect it!
> The error occurred while evaluating nil.needs_street_validation?
> from app/models/address.rb:3
>
> seems to me like we cannot reference any associated object within the
> ":if" condition or do you know some trick to get this working ?
>
The problem isn''t anything to do with :if''s, more a general
quirk of
activerecord - When you assign Address.new to u.address activerecord
doesn''t update the inverse assocation on the address object. In the
case where you''re doing this with already saved objects you can use
tricks like set_#{association_name}_target to do that work of filling
in the inverse association, though I don''t know if the fact that your
objects are unsaved makes a difference.
Fred
> maybe this is not the best example, but i hope you got the point.
>
> in most more-complex gui''s we have conditional validation based on
the
> state of multiple objects. It would be a shame if we could only handle
> those validation programmatically.
>
> tested in a vanilla rails 2.3.2 application.
>
> any help would be really appreciated.
>
> regards
> jan
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Talk" group.
To post to this group, send email to
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk+unsubscribe@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---