Rails отображает все сообщения об ошибках валидации, связанные с данным полем. Если у меня есть три validates_XXXXX_of :email
, и я оставляю поле пустым, я получаю три сообщения в списке ошибок.
Пример:
validates_presence_of :name
validates_presence_of :email
validates_presence_of :text
validates_length_of :name, :in => 6..30
validates_length_of :email, :in => 4..40
validates_length_of :text, :in => 4..200
validates_format_of :email, :with => /^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/i<br/>
<%= error_messages_for :comment %>
дает мне:
7 errors prohibited this comment from being saved
There were problems with the following fields:
Name can't be blank
Name is too short (minimum is 6 characters)
Email can't be blank
Email is too short (minimum is 4 characters)
Email is invalid
Text can't be blank
Text is too short (minimum is 4 characters)
Лучше отображать по одному сообщению за раз. Есть ли простой способ решить эту проблему? Это выглядит просто, если иметь условие типа: Если вы нашли ошибку для :email
, прекратите проверку :email
и перейдите к другому полю.