Формат сообщений полной версии Rails 3
Так как в 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, что я могу локализовать формат, и поэтому в моем yale файле locale (bg.yml) я добавил следующее:
bg:
activerecord:
errors:
full_messages:
format: "[...]"
Однако формат ошибок проверки остается прежним.
Ответы
Ответ 1
не знаю, может ли это помочь, но языковой файл для болгарского языка доступен в Github.
вы также можете попробовать это (должны работать в соответствии с направляющие rails):
bg:
errors:
format: "%{message}"
messages: &error_messages
empty: "Something something %{attribute} something something"
этот пост в блоге и этот проблема также говорят о странных {{attribute}} {{message}}
структур. Кажется, это вызвано конфликтом между двумя камнями I18n, установленными на том же сервере.
Ответ 2
Измените текущий код
<% @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' }
Ответ 3
Возвращает все полные сообщения об ошибках для заданного атрибута в массиве.
@object.errors.full_messages_for (: имя)
= > [ "Имя слишком короткое (минимум 5 символов)", "Имя не может быть пустым" ]