It may seem I don't google enough before posting here, but that's not the case:)

I refactored my validations according to the Tech. Arch.'s sample app [1] and rescue errors if any in my controller and then I've made a custom "flash" like notification in my form rendered in the view.

Now I have the desired behavior: if there are any errors, the review form isn't created and the user gets the list of error's and a chance to correct their input before submitting again.

[1] http://blog.monnet-usa.com/?p=288

regards,
seba






On 11. 10. 2014 09:09, Sebastjan Hribar wrote:
Hi guys,

I need help with validations, or to be more exact, what happens after validations fail.

Here are my AR validations in the model:

  class Reviewform < Base
    validates :project_number, :subproject_number, :translator,
              :reviewer, :no_tus, :allocated_time,
              :time_spent, presence: true
  end


These work and produce standard error output in the browser, which is ugly for the end user. I'm struggling with making a nicer error message.

Here's my controller:

  class FormNew
    def get
      @reviewform = Reviewform.new
      render :new
    end

    def post
      @reviewform = Reviewform.create(common_attributes)

      if @reviewform.errors
        render :error
      else

      end

    end
  end

I check if there are any errors for the @reviewform and then I want to render the error view. However, it doesn't work. I get:

Mab::Mixin::Error at /form/new
Tags can only be written within a `mab { }`-block


If I change render with redirect Index it works.

What I'd need to do is if the above validations pass, then create the form, otherwise stay on the page and let the user now there are errors. Like the flash in rails. Can it be done in some way?

Thank you.
regards,
seba

_______________________________________________
Camping-list mailing list
Camping-list@rubyforge.org
http://rubyforge.org/mailman/listinfo/camping-list

Reply via email to