Как изменить обычное поведение проверки, чтобы добавить сообщения в пользовательские ключи ошибок? - PullRequest
0 голосов
/ 21 сентября 2011

Я использую Ruby on Rails 3.1.0 и гем Paperclip.Я хотел бы изменить нормальное поведение для проверки и добавления сообщений об ошибках к объекту класса.

То есть недопустимый экземпляр класса User (ошибка :avatar_file_size связана с гемом Paperclip)

#<ActiveModel::Errors:0x0000010166cfb8 @base=#<User id: 1, firstname: "Sample firstname", lastname: "Sample lastname", avatar_file_name: "avatar_file.jpg",
...>, @messages={:avatar_file_size=>["is too big"]}>

Я хотел бы получить следующий вывод (обратите внимание, что :avatar_file_size error-hash key заменен на :avatar):

#<ActiveModel::Errors:0x0000010166cfb8 @base=#<User id: 1, firstname: "Sample firstname", lastname: "Sample lastname", avatar_file_name: "avatar_file.jpg",
...>, @messages={:avatar=>["is too big"]}>

В нескольких словах я бы хотел изменить хэш-ключ ошибки, связанный с сообщением об ошибке, сгенерированным гемом Paperclip .

Как мне это сделать?что?


Может быть, это можно сделать непосредственно в методе validates, представленном в модели User, которая на данный момент имеет вид:

validates_attachment_size :avatar,
  :less_than => 4.megabytes,
  :message   => "is too big"

1 Ответ

0 голосов
/ 21 сентября 2011

Вы можете указать опцию message, чтобы переопределить сообщение по умолчанию.Я предполагаю, что вы используете валидатор размера скрепки.

validates_attachment_size :avatar, :less_than => 5.megabytes, 
                            :message => "is too big"
...