Repopulating form after validation error

that should work just fine provided you don't do a redirect in your
controller upon failure... you need something like

MyController

  def send_mail

    if request.post?
      if everything validates etc
        flash[:notice] = 'Message sent'
        redirect_to :action => :message_sent
      else
        render :action => :contact_form
      end
    end

  end

end

note that if there was an error you render an action, not redirect to
it. if you redirect you are responsible for preserving all params
yourself.