rails skips model validation

for the life of me, i cannot get validates_presence_of to return any errors, leaving the form blank and clicking submit fails on the create or save method, but no validation errors are rendered.

http://pastie.caboo.se/98101

i should note that update_attributes is working

You're getting confused as to how errors are reported.

When you write

<%= error_messages_for :job %>

It looks for a model object in the instance variable @job (like how form_for works). The error messages are stored in the model object by a call to valid? (or save, create, etc.).

But you don't have an @job variable, so error_messages_for doesn't find anything.

Your controller code is wrong. First, create() will return a Job model object, even if it couldn't be saved. So the "if" part is always true.

Second, you are doing a redirect after the create. But if you had an error, your error messages would be lost due to the redirect.

This should work:

  @job = current_user.jobs.build(params[:job])   if @job.save     flash[:notice] = "job has been posted"     redirect_to :action => 'index'     return   end   render :action => 'new'

Note the render instead of redirect at the end. If the save fails, you need @job to be passed to the view, because it contains the error messages.

HTH

wow, awesome. thank you bob