Как показать сообщения об ошибках разработки по одному - PullRequest
0 голосов
/ 31 октября 2018

Я пишу приложение и использую devise для регистрации и входа в систему.

Сейчас я проверяю поля формы регистрации и могу проверять и отображать «неподтвержденные» данные, используя «<% = devise_error_messages!%>».

Дело в том, что я не хочу показывать все ошибки в одном div, я хотел бы поместить ошибку 1 в один div, ошибку 2 в другой div и т. Д.

Например: если пользователь вставит уже занятое имя пользователя и оставит поле электронной почты пустым, я хотел бы показать:

  1. «Имя пользователя уже занято» рядом с полем имени пользователя
  2. «Адрес электронной почты не может быть пустым» рядом с полем электронной почты

Спасибо

Ответы [ 2 ]

0 голосов
/ 02 ноября 2018

Я решил это, создав инициализатор с этим

ActionView::Base.field_error_proc = Proc.new do |html_tag, instance|   unless html_tag 
=~ /^<label/
    %{<div class="field_with_errors">#{html_tag}<label for="#{instance.send(:tag_id)}" 
class="message">#{instance.error_message.first}</label></div>}.html_safe else
    %{<div class="field_with_errors">#{html_tag}</div>}.html_safe   end end

Это дало мне точный результат, который я искал.

Результат

Спасибо за вашу помощь! :)

0 голосов
/ 31 октября 2018

Вы всегда можете перебрать ошибки в ресурсе.

Так что если вы похожи на это:

<%= form_for(resource, :as => resource_name, :url => registration_path(...

Вы можете просто, получить ошибки внутри ресурса и показать их, например, так:

<% resource.errors.full_messages.each do |msg| %>
  <div><%= msg %></div>
<% end %>

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

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