2011-07-09 58 views
9

產生的自動文本我的代碼更改從f.label

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

的問題是,此代碼自動生成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> 

內部的形式。我如何將「電子郵件」更改爲「電子郵件地址」?

回答

23

最簡單的方法就是做這個:

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

@moritz(下)答案更多的是Rails的方式。主要的重要方面是保持乾爽。當在activerecord中定義時:models:attributes:你將a)避免不必要的代碼和b)每種語言的每種形式總是會有正確的單詞 – awenkhh

+0

如何修改所有f.label,最後添加例如「 :「..你怎麼修改班級? –

7

這是通過向config/locale/en.yml添加適當的i18n值完成的。請查看http://guides.rubyonrails.org/i18n.html#translations-for-active-record-models的指南,瞭解有效記錄值的文件格式。

+0

這是一種方式做到這一點,但它是不必要的,除非你已經做國際化。 – henrikhodne

+1

我不會說這是不必要的。我認爲,這取決於你想保存這些數據的位置。如果你認爲命名與視圖是分開的,把它們保存在翻譯文件中是有意義的。所以這可以歸結爲一個品味問題。 – moritz

+0

我想你是對的。當我想到它時,你的方式會隨時更新標籤,以防其他地方使用它。 – henrikhodne