2016-08-08 33 views
1

Ich habe drei Modelle Account, User und AccountPermission genannt.Fehlermeldungen im verschachtelten Attribut

Ich erstelle die Account über AccountPermission beim Erstellen von Benutzer.

Wenn jedoch ein Problem mit Konto verwandtes auftritt: Name, wirft das System etwas wie die unten.

Account permissions account name has already been taken

Also, ich brauche nur diese Fehlermeldung zu beheben.

Ich habe versucht, eine Nachricht Attribut meine Validierung hinzuzufügen. Es hängt nur an die tatsächliche Nachricht an.

Ich habe auch locale Sache ausprobiert. Immer noch nur

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

Soweit ich in ActiveModel sehe. Diese Struktur der Nachricht kommt von unten

locale/en.yml in ActiveModel

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

So, Gibt es eine Möglichkeit zu bearbeiten Diese Nachricht schmerzlos? Wenn ich sogar den Modellnamen lösche, reicht es.

+0

fragen Sie können Sie eine benutzerdefinierte Fehlermeldung aus, wenn die Validierung fehlschlägt? –

Antwort

1

Fehlermeldung wird von dem Fehler selbst verkettet und der Attributnamen, die in den account_permissions/account.name vorgesehen Fehlern.

Sie können wie so locale für Ihre Attributnamen hinzufügen:

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

oder

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

Endlich! Ich danke dir sehr. 'account_permissions/account' funktioniert :) – utkuDAT