пт-BR.yml:Rails 5 - Устные ошибки от вложенной модели
pt-BR:
activerecord:
models:
user: Usuário
project: Projeto
attributes:
user:
name: O nome
description: A descrição
projects: Os projetos
project:
name: O nome
errors:
format: "%{attribute} %{message}"
messages:
accepted: deve ser aceito
blank: não pode ficar em branco
........
Модель:
class User < ApplicationRecord
has_many :projects, dependent: :destroy, inverse_of: :user
accepts_nested_attributes_for :projects, allow_destroy: true
end
class Project < ApplicationRecord
belongs_to :user, inverse_of: :projects
validates :name, presence: true, length: { mininum: 3, maximum: 255 }
end
Контроллер:
def update
if @user.update(user_params)
render json: @user
else
render json: { errors: @user.errors.full_messages }, status: :unprocessable_entity
end
end
Все ошибка сообщения переводится, когда вызывается метод .error.full_messages
, за исключением тех, которые исходят от проектов объектов (как вы могли заметить выше, я использую accepts_nested_attributes_for
).
Я всегда получаю следующее сообщение об ошибке:
{
"errors": [
"Projects name deve conter no mínimo 3 caracteres"
]
}
Как я могу перевести Проекты и имя в моем файле перевода или даже удалить на «Проекты% atribute%» от сообщения об ошибках (без каких-либо взломов)?
Спасибо за ответ ... однако, я действительно не думаю, что мне нужно добавить все это ** снова ** под * errors * key ... потому что, как я уже сказал, * все сообщения об ошибках переводятся когда вызывается метод .error.full_messages, кроме тех, которые исходят от объектов проектов *. Итак, я пытаюсь найти способ их перевода или, возможно, удалить. Я ищу что-то вроде этого [** вопрос **] (http://stackoverflow.com/questions/5941856/suppress-base-in-error-text-for-custom-validation-of-rails-nested- атрибуты) (но это не работает для меня - может быть, потому, что это слишком старый). –