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.
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