पटरियों के लिए कस्टम पाठ form_for लेबल


102

मैं इसमें एक लेबल प्रदर्शित करना चाहता हूं form_for:

<div class="field">
  <%= f.label :name %><br />
  <%= f.text_field :name %>
</div>

यह "नाम" लेबल उत्पन्न करता है, लेकिन मैं चाहता हूं कि यह "आपका नाम" हो। मैं इसे बदलने में किस तरह सक्षम हूं?

जवाबों:


185

labelहेल्पर के लिए दूसरा पैरामीटर आपको कस्टम टेक्स्ट सेट करने की अनुमति देगा।

<%= f.label :name, 'Your Name' %>

सहायक विधियों को देखने के लिए रेल्स डॉक्यूमेंटेशन पर रूबी का उपयोग करें ।


1
धन्यवाद! क्या आप मुझे बता सकते हैं कि मैं प्रलेखन में इस तरह से कैसे देख सकता हूँ?
पॉल एस।

2
बस ऊपर दिए गए लिंक पर जाएं और जिस विधि को आप खोज बॉक्स में देख रहे हैं उसमें टाइप करें। labelके अंतर्गत सूचीबद्ध है ActionView::Helpers::FormBuilderऔर ActionView::Helpers::FormHelperActionView::Helpers::FormBuilderवह है जिसमें हम रुचि रखते हैं, लेकिन कोई विवरण नहीं है। यदि आप विधि घोषणा को देखते हैं, तो आप देख सकते हैं कि दूसरा पैरामीटर है text। इस उदाहरण में, यह बहुत सीधे आगे नहीं है। लेकिन उस प्रलेखन साइट आमतौर पर बहुत अच्छा है।
जाइलाज़

34

आप i18n के माध्यम से कस्टम लेबल पाठ निर्दिष्ट कर सकते हैं। config/locales/en.ymlआपके उपयोगकर्ता मॉडल का नाम इसमें है , और userआप निम्नलिखित को जोड़ सकते हैं:

helpers:
    label:
      user:
        name: Your Name

यह आपको उपयोग करते रहने की अनुमति देगा

<%= f.label :name %>

बिना हार्डकोड के Your Name

I18n के बारे में अधिक जानकारी के लिए, यह देखें । इस के labelसंदर्भ में प्रलेखन ।


0

i18n रेल के साथ 5.2.2 यह पूरी तरह से काम करता है।

अनुवाद लेबल , प्लेसहोल्डर , और बटन पर चिंतन करना रूपों या अन्य रूपों।

<%= form_for(resource, as: resource_name, url: session_path(resource_name)) do |f| %>
   <div class="mt-3">
     <label class="float-left"> <%= f.label t(:email) %> </label>
       <%= f.email_field :email, class: 'form-control', placeholder: t('.emailholder') %>
   </div>
   <div class="mt-3">
     <label class="float-left"> <%= f.label t(:password) %> </label>
       <%= f.password_field :password, class: 'form-control', placeholder: t('.passholder') %>
   </div>

   <div class="button">
     <%= f.button t('.signinbtn'), class: "" %>
   </div>
<% end %>

स्थानीय फ़ाइल: विन्यास / स्थान / en.yml

en:
  activerecord:
    ....others

  #Found in Views/devise/seasions/new <form> <*label*>
  email: "Email"
  password: "Password"

  #Views/devise <form> <placeholder & buttom>
  devise: #if your using devise forms
    #seasions/new.html.erb
    new:
      emailholder: "enter email here"
      passholder: "enter password"
      signinbtn: "SignIn"

  ....others

-2

रेल 5.1.0 पर, ऊपर दिया गया स्वीकृत उत्तर काम नहीं करता है।

पारित पहला पैरामीटर एक अनुकूलित लेबल के रूप में इस्तेमाल किया जा सकता है।

<%= f.label :mobile, "Mobile No:" %>

क्या आप थोड़ा और समझा सकते हैं कृपया @NemyaNation? आपका उदाहरण बिलकुल स्वीकृत उत्तर जैसा दिखता है।
एसआरएके

मुझे ठीक से याद नहीं है @RRack, लेकिन मुझे याद है कि मैंने एकल उद्धरणों का उपयोग करके एक लेबल बनाने की कोशिश की थी और यह मेरे लिए काम नहीं करता था 'Mobile No:'। इसलिए दोहरे उद्धरणों में बदलकर "Mobile No:"इसने मेरी समस्या को हल कर दिया। यह फ़ाइल के बाकी हिस्सों में गुम टैग के कारण हो सकता है। मुझे यकीन नहीं है, लेकिन मुझे याद है कि उस समय मेरे लिए काम किया था।
नेमिनेशन

4
उत्तर @NemyaNation के लिए धन्यवाद। ऐसा लगता है कि यह आपके मामले में विशेष रूप से एक मुद्दा हो सकता है, या शायद प्रक्षेप / टेम्पलेट प्रारूप के साथ करना है। रूबी / रेल सिंगल और डबल कोट्स के बीच अंतर नहीं करेगी, इस उदाहरण को एक नियमित .html.erbफ़ाइल में :)
SRack
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.