For my website when a user creates an account they have to fill out
their
birthdate using pulldown menus. If a user enters an illegal date the
system
throws an error before I even get the opportunity to validate the date
in
the user model on save.
Soon as I do the following in my controller:
@user = User.new(params[:user])
The following error is thrown:
1 error(s) on assignment of multiparameter attributes
How are people handling situations like this… what is the best
practice?
I don’t personaly want to do validation outside of the model… that
would
just suck :-p. Thanks for any input you might have!
begin @user = User.new(params[:user])
rescue ActiveRecord::MultiparameterAssignmentErrors
# date is invalid, so reset these fields before creating new
user object
params[:user][‘date_of_birth(1i)’] = ‘’
params[:user][‘date_of_birth(2i)’] = ‘’
params[:user][‘date_of_birth(3i)’] = ‘’
# try again, letting our model’s
validates_presence_of :date_of_birth
# handle things. @user = User.new(params[:user])
end
By the way, I neglected to mention the fact that this code goes in
your controller. Also, the formatting got messed up, but I think you
can still get the gist of it.
Your solution makes sense… but isn’t the problem with this that you
are
not adding an error onto your model’s error stack so a proper error is
not
being displayed? I am assuming their is more “Rails Way” of handling
this… no?