ruby-on-rails-3 simple-form formbuilder

ruby on rails 3 - Mostrando mensajes de error de forma simple en la parte superior<div>



ruby-on-rails-3 simple-form (1)

Solo agregue error: falso a sus entradas, esto no borrará el css pero borrará los errores en línea

f.input error: false or :error => false

Editar:

De http://ruby.railstutorial.org/book/ruby-on-rails-tutorial

/app/views/shared/_error_messages.html.erb

<% if object.errors.any? %> <div id="error_explanation"> <div class="alert alert-error"> The form contains <%= pluralize(object.errors.count, "error") %>. </div> <ul> <% object.errors.full_messages.each do |msg| %> <li>* <%= msg %></li> <% end %> </ul> </div> <% end %>

en vista

<%= form_for(@user) do |f| %> <%= render ''shared/error_messages'', object: f.object %> <%= f.label :name %> <%= f.text_field :name %> <%= f.label :email %> <%= f.text_field :email %> <%= f.label :password %> <%= f.password_field :password %> <%= f.label :password_confirmation, "Confirmation" %> <%= f.password_field :password_confirmation %> <%= f.submit "Create my account", class: "btn btn-large btn-primary" %> <% end %>

Tengo las siguientes dos formas:

formulario de usuario

<%= simple_form_for(@user, :url => @target) do |f| %> <% if @user.errors.any? %> <div id="error_explanation"> <h2><%= pluralize(@user.errors.count, "error") %> prohibited this user from being saved:</h2> <ul> <% @user.errors.full_messages.each do |msg| %> <li><%= msg %></li> <% end %> </ul> </div> <% end %> <%= f.input :email, :label => "User Email" %> <%= f.input :password, :label => "User Password" %> <%= f.input :first_name %> <%= f.input :last_name %> <%= f.button :submit %> <% end %>

forma de inquilino

<%= simple_form_for(@tenant, :url => @target) do |f| %> <% if @tenant.errors.any? %> <div id="error_explanation"> <h2><%= pluralize(@tenant.errors.count, "error") %> prohibited this tenant from being saved:</h2> <ul> <% @tenant.errors.full_messages.each do |msg| %> <li><%= msg %></li> <% end %> </ul> </div> <% end %> <%= f.input :name, :label => ''Name'', :required => true %> <%= f.input :billing_email, :label => ''Email'', :required => true %> <%= f.input :country, :label => ''Country'', :required => true %> <%= f.button :submit %> <% end %>

Me he encontrado con la siguiente publicación de stackoverflow f.error_messages en Rails 3.0

Aquí hay un método para que los mensajes de error puedan devolverse desde el formulario simple utilizando f.error_messages, pero no he podido hacer que esto funcione, ya que no estoy seguro de dónde debería guardarse este método. ¿Alguien tiene alguna pista? El método es como sigue:

class StandardBuilder < ActionView::Helpers::FormBuilder def error_messages return unless object.respond_to?(:errors) && object.errors.any? errors_list = "" errors_list << @template.content_tag(:span, "There are errors!", :class => "title-error") errors_list << object.errors.full_messages.map { |message| @template.content_tag(:li, message) }.join("/n") @template.content_tag(:ul, errors_list.html_safe, :class => "error-recap round-border") end end