4

Ich habe meine he.yml erfolgreich erstellt mein Modell Attribute Namen zu lokalisieren, Beispiel:Zugriff auf das Attribut Übersetzungen des Modells, wenn Fehler anzeigt

 attributes: 
     vendor: 
     name: שם ספק 
     counter_number: מספר חשבונית 
     phone: טלפון 
     address: כתובת 

nun Anzeigen Etiketten in Formen simple_form der f.input mit, Displays es korrekt, der übersetzte Wert jedes Attributs.

das Problem ist, Fehler nach der Validierung angezeigt wird, mit

<% @vendor.errors.each do |attribute, error| %> 

| Attribute | Für den Fehler "counter_number" zum Beispiel wird angezeigt: "counter_number". nicht das übersetzte in der locale-Datei [die wie bereits erwähnt, konfiguriert und erfolgreich geladen]. Ich fügte Fehler in einem ul.errors, wie in diesem Screenshot gezeigt: enter image description here

Vielen Dank im Voraus.

Antwort

1

Sie können etwas tun:

@vendor.errors.messages do |attribute, errors| 
    translated_attribute = Vendor.human_attribute_name(attribute) 
    errors = errors.join(", ") 
end 

ich das mit meinem User Modell getestet haben:

enter image description here

1

Das folgende ist nur ein Beispiel, um Ihren bereitgestellten Code zu vervollständigen.

<% @vendor.errors.each do |attribute, error| %> 
    <strong><%= t("activerecord.attributes.#{@vendor.class.to_s.underscore}.#{attribute}") %>:</strong> 
    <%= error.messages.to_sentence %> 
<% end %> 

Vielleicht gibt es einen einfacheren Ansatz als dies.

Verwandte Themen