2011-07-09 9 views
9

से उत्पन्न स्वत: पाठ बदलें मैं कोड हैf.label

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

समस्या यह है कि इस कोड को स्वचालित रूप से एचटीएमएल

<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

@ मॉरीट्ज़ (नीचे) उत्तर रेल मार्ग अधिक है। मुख्य महत्वपूर्ण पहलू डीआरवाई रहना है। जब Activerecord में परिभाषित किया गया है: मॉडल: विशेषताएं: आप ए) अनावश्यक कोड से बचें और बी) प्रति भाषा प्रत्येक रूप में हमेशा सही शब्द होगा – awenkhh

+0

अंत में जोड़ने, आप सभी f.label को कैसे संशोधित कर सकते हैं, उदाहरण के लिए, " : ".. आप कक्षा को कैसे संशोधित कर सकते हैं? –

7

यह कॉन्फ़िगर/लोकेल/en.yml में उपयुक्त i18n मान जोड़कर किया जाता है। सक्रिय रिकॉर्ड मानों के लिए उस फ़ाइल के प्रारूप के लिए http://guides.rubyonrails.org/i18n.html#translations-for-active-record-models पर मार्गदर्शिकाओं पर एक नज़र डालें।

+0

यह यह करने के लिए एक तरीका है, लेकिन यह अनावश्यक है, जब तक कि आप पहले से ही अंतर्राष्ट्रीयकरण कर रहे हैं। – henrikhodne

+1

मैं इसे अनावश्यक नहीं कहूंगा। मुझे लगता है, यह इस बात पर निर्भर करता है कि आप इस डेटा को कहां रखना चाहते हैं। यदि आप विचारों को अलग करने के लिए नामों पर विचार करते हैं, तो उन्हें अनुवाद फ़ाइलों में रखने के लिए समझदारी होती है। तो यह स्वाद के मामले में नीचे आता है। – moritz

+0

मुझे लगता है कि आप सही हैं। जब मैं इसके बारे में सोचता हूं, तो आपका तरीका हर जगह लेबल को अपडेट करेगा, अगर इसे कहीं और इस्तेमाल किया जाता है। – henrikhodne