У меня есть следующая проверка в моей модели (User):
validates :first_name,:length => {:minimum => 2,:maximum => 50},:format => { :with => /[a-zA-Z]+/ }
В моем файле yml locales есть следующее:
attributes:
first_name:
too_short: "First name is too short"
too_long: "First name is too long"
invalid: "First name is not valid"
Теперь, если я запустил a rails console
и напишу следующее:
a = User.new
a.valid?
a.errors.full_messages
Я увижу следующие ошибки:
["First name First name is too short", "First name First name is not valid"]
Как вы можете видеть, имя атрибута также добавляется к ошибке поля. До сих пор везде в моем коде я использовал model.errors[:field]
, и это всегда будет показывать мне строку, содержащуюся в файле yml, но я бы хотел изменить строки:
attributes:
first_name:
too_short: " is too short"
too_long: " is too long"
invalid: " is not valid"
И используйте версию full_messages. Проблема в том, что я не знаю, как перевести имя атрибута. Скажем, например, что вместо первого имени я бы хотел иметь имя сначала. Как мне это сделать?