удалить имя поля из сообщения проверки объекта - PullRequest
7 голосов
/ 01 июня 2010

У меня есть простая активная проверка записи на объекте, используя это в форме:

  form.error_messages({:message => '', :header_message => ''})

Это в свою очередь выдает что-то вроде «FieldName My Custom message»

Что мне нужно сделать, это удалить имя поля из сообщения об ошибке, но оставить свое настраиваемое сообщение.

Может ли кто-нибудь указать мне правильное направление для этого.

Ответы [ 4 ]

9 голосов
/ 01 июня 2010

Одним из способов полного контроля над сообщениями является использование пользовательского блока validate в модели. например чтобы проверить, что поле не пустое, это будет выглядеть так:

class MyModel < ActiveRecord::Base
  validate do |model|
    model.errors.add_to_base("My Custom message") if user.field.blank?
  end
end

add_to_base предназначен для добавления сообщений, не связанных с конкретным отдельным полем (например, если комбинация нескольких полей недопустима). Это означает, что CSS, чтобы выделить ваше неверное поле, не будет добавлен. Вы можете обойти это, добавив нулевое сообщение к ошибкам для вашего поля, например,

model.errors.add(:field, nil)

В качестве альтернативы, проверьте custom-err-message плагин - этот плагин дает вам возможность отказаться от префиксного имени сообщения об ошибке проверки с именем атрибута.

Обновление:

add_to_base устарела начиная с Rails 3. Вместо этого можно использовать следующее: model_instance.errors.add(:base, "Msg")
Ссылка: https://apidock.com/rails/ActiveRecord/Errors/add_to_base

8 голосов
/ 26 июля 2012

В rails 3.2.6 вы можете установить это в файле локали (например, config / locales / en.yml):

en:
  errors:
    format: "%{message}"

В противном случае по умолчанию используется формат «% {attribute}% {message}».

1 голос
/ 01 июня 2010

Вы можете использовать error.add_to_base http://api.rubyonrails.org/classes/ActiveRecord/Errors.html#M001712

0 голосов
/ 01 июня 2010

Вы можете получить доступ к экземпляру объекта error напрямую, если вам нужен полный контроль над тем, как представлены сообщения.

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