Hello,
I''m having trouble with after_validation_on_create causing my
validations to fail silently. I''ve got a restful_authentication based
user model that requires a number of things from the user: email, dob,
gender, etc. When a user is created, all of these are validated in
various ways (presence, inclusion_of, etc.). Afterwards, I call three
protected methods using after_validation_on_create. These make the
user an alias, a password and a profile. The problem I''m having is
that rely on data the user enters (like gender) to generate their
information correctly. So long as I do not call
after_validation_on_create, the validations all work fine and the
controller passes the errors back to the view. However, the moment I
uncomment the after_validation_on_create line in my model all the
validations stop working. I only know they haven''t worked because the
private methods throw NoMethodErrors when the user doesn''t enter
something.
Here''s an example:
validates_acceptance_of :terms_of_service, :on
=> :create, :allow_nil => false
validates_length_of :email, :within => 6..100
validates_uniqueness_of :user_alias, :email, :case_sensitive =>
false
validates_inclusion_of :gender, :in => %w( m f ), :message =>
'': So
what are you then?''
after_validation_on_create :make_new_alias
...
protected
def make_new_alias
self.user_alias = "#{get_random_word(:gender =>
self.gender ).word.downcase}.to_s}"
end
Get random word is just a find off of a table of exactly that.
Any one have any ideas why this might be happening? Is there anything
I can do about it?
Best,
TA
--~--~---------~--~----~------------~-------~--~----~
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-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---