2011-07-09 9 views
9

mam kodZmień tekst wygenerowany automatycznie z f.label

<%= form_for(@user) do |f| %> 
    <div> 
    <%= f.label :email, :class=>'inline betaLabelTextField' %> 
    <%= f.text_field :email, :class=>'betaTextField' %> 
    </div> 
<% end %> 

Problemem jest to, że ten kod automatycznie generuje kod HTML

<div> 
     <label class="inline betaLabelTextField" for="user_email">Email</label> 
     <input class="betaTextField" id="user_email" name="user[email]" size="30" type="text" /> 
    </div> 

wewnątrz formy. Jak mogę zmienić "E-mail" na "Adres e-mail"?

Odpowiedz

23

Najłatwiej jest to zrobić w zamian:

<%= form_for(@user) do |f| %> 
    <div> 
    <%= f.label :email, "Email Address", :class=>'inline betaLabelTextField' %> 
    <%= f.text_field :email, :class=>'betaTextField' %> 
    </div> 
<% end %> 
+0

@moritz (poniżej) odpowiedź jest bardziej sposobem Rails. Najważniejszym aspektem jest pozostanie w stanie SUCHYM. Po zdefiniowaniu w activerecord: models: attributes: a) unikniesz zbędnego kodu i b) zawsze będziesz miał poprawne słowo w każdej formie dla każdego języka – awenkhh

+0

Jak możesz modyfikować wszystkie f.label, dodając na końcu np. " : ".. Jak możesz modyfikować zajęcia? –

7

Dokonuje się tego poprzez dodanie odpowiednich wartości i18n do config/locale/en.yml. Proszę zapoznać się z przewodnikami pod numerem http://guides.rubyonrails.org/i18n.html#translations-for-active-record-models dla formatu tego pliku dla aktywnych wartości rekordów.

+0

Jest to sposób, aby to zrobić, ale to niepotrzebne, chyba że już robi internacjonalizacji. – henrikhodne

+1

Nie powiedziałbym, że jest to niepotrzebne. Myślę, że to zależy od tego, gdzie chcesz zachować te dane. Jeśli uważasz, że nazwy są oddzielone od widoków, warto zachować je w plikach tłumaczeń. Więc to sprowadza się do gustu. – moritz

+0

Chyba masz rację. Kiedy o tym pomyślę, twoja droga zaktualizuje etykietę wszędzie, na wypadek gdyby była używana gdzie indziej. – henrikhodne

Powiązane problemy