Rails 3 полный формат сообщений об ошибках - PullRequest
13 голосов
/ 24 декабря 2010

Поскольку в Rails 3 форма form.error_messages устарела, я использую партиал, в котором я перебираю full_messages и структурирую свой HTML следующим образом:

<% model.errors.full_messages.each do |msg| %>
  <p><%= msg %></p>
<% end %>

Однако язык приложения по умолчанию не английский, и на моем языке структура full_messages выглядит неестественно:

{{attribute}} {{message}}

Я видел из источника generate_full_messages, что я могу локализовать формат и поэтому в файле yml моей локали (bg.yml) я добавил это:

bg:
 activerecord:
  errors:
   full_messages:
    format: "[...]"

Однако формат ошибок проверки остается прежним.

Ответы [ 3 ]

9 голосов
/ 13 октября 2012

Измените свой текущий код

<% @object.errors.full_messages.each do |msg| %>
  <li><%= msg %></li>
<% end %>

С этим

<% @object.errors.messages.values.each do |msg| %>
  <% msg.each do |m| %>
    <li><%= m %></li>
  <%end %>
<% end %>

А в вашей модели настройте сообщение:

validates :attribute, :presence => { :message => 'Attribute cannot be blank' }
8 голосов
/ 05 октября 2011

не знаю, может ли это помочь, но файл для болгарского языка доступен на Github .

, вы также можете попробовать это (должно работать в соответствии с инструкциями по направляющим):

bg:
  errors:
    format: "%{message}"
    messages: &error_messages
      empty: "Something something %{attribute} something something"

это сообщение в блоге и эта проблема переполнения стека также говорят о странных {{attribute}} {{message}} структурах.Кажется, это вызвано конфликтом между двумя камнями I18n, установленными на одном сервере.

2 голосов
/ 31 декабря 2014

Возвращает все полные сообщения об ошибках для данного атрибута в массиве.

@object.errors.full_messages_for (: name)

=> ["Nameслишком короткая (минимум 5 символов) "," Имя не может быть пустым "]

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