Как изменить сообщение об ошибке «3 ошибки запретили сохранение этого foobar» в Rails? - PullRequest
8 голосов
/ 24 сентября 2008

В моем приложении rails я использую помощники проверки в моих активных объектах записи, и они великолепны. Когда возникает проблема, я вижу стандарт «3 ошибки, запрещающие сохранение этого foobar» на моей веб-странице вместе с отдельными проблемами.

Можно ли как-нибудь переопределить это сообщение по умолчанию своим собственным?

Ответы [ 3 ]

11 голосов
/ 24 сентября 2008

Помощник error_messages_for, который вы используете для отображения ошибок, принимает параметр :header_message, который позволяет вам изменять текст заголовка по умолчанию. Как в:

error_messages_for 'model', :header_message => "You have some errors that prevented saving this model"

RubyOnRails API - ваш друг.

1 голос
/ 24 сентября 2008

Методы validates_ в вашей модели, как правило, могут передаваться как : message => «My Validation Message» параметр.

Я обычно обертываю ошибки в что-то вроде этого:

<% if(!@model.errors.empty?) %>
<div id="error_message">        
  <h2>
    <%= image_tag("error.png", :align => "top", :alt => "Error") -%>
    Oops, there was a problem editing your information.
  </h2>
  <%= short_error_messages_for(:model) %>
</div>
<% end %>  

Затем в моем application_helper я перебираю ошибки и создаю простой список:

  def short_error_messages_for(object_name)
    object = instance_variable_get("@#{object_name}")
    if object && !object.errors.empty?
       content_tag("ul", object.errors.full_messages.collect { |msg| content_tag("li", msg) } )     
    else
        ""
    end
  end  

Этот код довольно старый и, вероятно, не так, как я бы писал в Ruby в наши дни, но вы понимаете, суть.

0 голосов
/ 24 сентября 2008

Вы можете перебирать хеш модели.errors самостоятельно, вместо использования помощника ошибок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...