i really like the declarative model-based validation in rails, but i
run into trouble while doing some real world (more complex) stuff.

class User < ActiveRecord::Base
  belongs_to :address
  accepts_nested_attributes_for :address
  def needs_street_validation?
    true
  end
end

class Address < ActiveRecord::Base
  has_one :user
  validates_presence_of :street, :if => Proc.new { |adr|
 adr.user.needs_street_validation? }
end

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 ?

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@googlegroups.com
To unsubscribe from this group, send email to 
rubyonrails-talk+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to