Отображение сообщений об ошибках simple_form в верхнем

У меня есть следующие две _forms:

пользовательская форма

<%= simple_form_for(@user, :url => @target) do |f| %>
  <% if @user.errors.any? %>
    

<%= pluralize(@user.errors.count, "error") %> prohibited this user from being saved:

    <% @user.errors.full_messages.each do |msg| %>
  • <%= msg %>
  • <% end %>
<% 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 %>

форма арендатора

<%= simple_form_for(@tenant, :url => @target) do |f| %>
  <% if @tenant.errors.any? %>
    

<%= pluralize(@tenant.errors.count, "error") %> prohibited this tenant from being saved:

    <% @tenant.errors.full_messages.each do |msg| %>
  • <%= msg %>
  • <% end %>
<% 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 %>

Я наткнулся на следующий пост из stackoverflow f.error_messages в Rails 3.0

Здесь есть метод, позволяющий возвращать сообщения об ошибках из простой формы с помощью f.error_messages, но мне не удалось заставить это работать, так как я не уверен, где этот метод должен быть сохранен. . У кого-нибудь есть подсказки? Метод следующий:

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

16
задан Community 23 May 2017 в 12:02
поделиться