2013-08-27 15 views
6

Komunikat o błędzie nie tłumaczy moich atrybutów modelu zagnieżdżonego, ponieważ jest zdefiniowany jako pojedynczy, ale w komunikatach o błędach szuka liczby mnogiej.Railsy tłumaczą komunikaty o błędach sprawdzania poprawności dla zagnieżdżonych atrybutów i18n

Mam model "Person", który ma wiele: adresów. Ten model Person akceptuje zagnieżdżone atrybuty "adresów". Tworzę adresy tylko wraz z modelem osoby.

mój plik locale wygląda

en: 
    activerecord: 
    models: 
     person: 
     one: "Person" 
     other: "People" 
     address: 
     one: 'Address' 
     other: 'Addresses' 
    attributes: 
     person: 
     first_name: 'First name' 
     last_name: 'Last name' 
     middle_name: 'Middel name' 
     address: 
     street: street 
     city: city 
     country: country 

i dla komunikatu o błędzie:

en: 
    errors: &errors 
    format: ! '%{attribute} %{message}' 
    messages: 
     blank: can't be blank 

Współpracuje z pojedynczych modeli, ale z zagnieżdżonych atrybutów Mam problem z komunikatów walidacji.

Ponieważ wiadomość jest wyświetlana jak:

@messages= 
    {:first_name=>["can't be blank"], 
    :last_name=>["can't be blank"], 
    :"addresses.street"=>["can't be blank"], 
    :"addresses.city"=>["can't be blank"]}> 

odnośnika nie znaleźć tłumaczenie addresses.street, ponieważ jest po prostu address.street w pliku yml.

Jak mogę go znaleźć adres.street, gdy szuka adresów.street bez podwajania wszystkich moich wpisów?

+0

Może [ta odpowiedź] (http://stackoverflow.com/a/11129637/660260) może pomóc. – Flauwekeul

Odpowiedz

-1

pan patrzeć jak radzić pluralization w szynach Doc

[szyny i18n] [1] [1]: http://guides.rubyonrails.org/i18n.html#pluralization

3 pluralization W języku angielskim istnieje tylko jedna pojedyncza i jedną formę mnogą dla danego ciągu, np "1 wiadomość" i "2 wiadomości". Inne języki (arabski, japoński, rosyjski i wiele innych) mają różne gramatyki, które mają więcej lub mniej form liczby mnogiej. Tak więc interfejs API I18n zapewnia elastyczną funkcję pluralizacji.