У меня есть атрибуты со специальной проверкой, где я использую предложение сообщения для отображения специального сообщения только для этой проверки. Вот один пример:
validates :email, presence: true, length: { maximum: 60 },
format: { with: valid_email_regex, message: "is not a valid email address format." },
uniqueness: { case_sensitive: false }
Я хотел бы перевести здесь сообщение, но я не уверен, как это сделать.
Я видел примеры, где они печатают что-то вроде этого: message: t ( "some_value_here" ). Я не уверен в назначении. Я пробовал что-то вроде этого сообщения: t (: bad_email). Я сделал следующее в файле yaml, чтобы что-то попробовать.
activemodel:
errors:
bad_email: "is not a valid email address format."
Когда я попытался получить доступ к моему Rails-приложению, я получил следующую ошибку:
ActionView::Template::Error (undefined method `t' for #<Class:0x007fefc1b709e0>)
Я также пробовал это в своем файле yaml:
activemodel:
errors:
user:
bad_email: "is not a valid email address format."
Я изучаю это и весь день. Все, что я могу найти, это заменить встроенные хэши-ошибки как пустые или пустые. Есть ли способ для меня иметь пользовательские хэши ошибок и заменить их в модели? На данный момент я не могу заставить t работать как закодированный. Я надеюсь, что проблема в том, как я установил файл yaml. Я видел различные варианты того, как это установить. Я не уверен, должен ли я включить это под activemodel или activerecord. Я предположил, что activemodel, поскольку это то, где пользовательское сообщение - это то, что я хочу перевести.
Любая помощь будет оценена по достоинству. Это последняя часть, которую мне нужно выяснить, прежде чем запускать мой первый перевод приложения.
ОБНОВЛЕНИЕ 7/29/2013 7:30 вечера CDT
bgates дал мне очень хорошее начало, как настроить файлы модели для получения пользовательского сообщения в файле YAML. Однако мне пришлось выполнить следующую настройку в моем файле yaml для получения настраиваемых сообщений.
activerecord:
errors:
models:
user:
attributes:
bio:
no_links: "cannot contain email addresses or website links (URLs)."
email:
bad_email: "is not a valid email address format."
username:
bad_username: "can only contain numbers and letters. No special characters or spaces."