2016-08-08 3 views
1

У меня есть три модели: Account, User и AccountPermission.Сообщения об ошибках в вложенном атрибуте

Я создаю Account через AccountPermission при создании пользователя.

Однако, если возникла проблема, связанная с именем Account: name, система выбрасывает что-то вроде этого ниже.

Account permissions account name has already been taken

Итак, мне просто нужно, чтобы исправить это сообщение об ошибке.

Я попытался добавить атрибут сообщения к моей проверке. Это просто добавление к фактическому сообщению.

Я также попробовал локальную вещь. Еще только добавление

en: 
    activerecord: 
    errors: 
     models: 
     account: 
      attributes: 
      name: 
       taken: 'bla bla' 

Насколько я вижу в ActiveModel. Структура этого сообщения приходит снизу

локали/en.yml в ActiveModel

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

Итак, есть ли способ исправить это сообщение безболезненного? Если я даже удалю название модели, этого достаточно.

+0

вы спрашиваете вы можете бросить сообщение об ошибке пользовательской при сбое проверки? –

ответ

1

Сообщение об ошибке связывается с самой ошибкой и именем атрибута, которое равно account_permissions/account.name в указанной ошибке.

Вы можете добавить локаль для имен атрибутов, как так:

en: 
    activerecord: 
    attributes: 
     account: # this is model name 
     name: "Name" 

или

en: 
    activerecord: 
    attributes: 
     account_permissions/account: 
     name: "Account name" 
+0

Наконец-то! Огромное спасибо. 'account_permissions/account' работает :) – utkuDAT