रेल्स: रेल फॉर्म में सबमिट बटन पर टेक्स्ट कैसे बदलें


109

मैंने अपनी _form.html.erb फ़ाइल को नीचे सूचीबद्ध किया है कि मैं क्या करना चाहूंगा, सबमिट बटन पर पाठ को बदलना है मुझे पता है कि इसे html में कैसे करना है, लेकिन यह न बताएं कि इसे रेल 3 में कैसे करें

%= form_for(@faq) do |f| %>
  <% if @faq.errors.any? %>
    <div id="error_explanation">
      <h2><%= pluralize(@faq.errors.count, "error") %> prohibited this faq from being saved:</h2>

      <ul>
      <% @faq.errors.full_messages.each do |msg| %>
        <li><%= msg %></li>
      <% end %>
      </ul>
    </div>
  <% end %>

  <div class="field">
    <%= f.label :question %><br />
    <%= f.text_field :question %>
  </div>
  <div class="field">
    <%= f.label :answer %><br />
    <%= f.text_area :answer %>
  </div>
  <div class="actions">
    <%= f.submit %>
  </div>
<% end %>

जवाबों:


193

के बजाय

<%= f.submit  %>

डाल

<%= f.submit "My Submit Text" %>

OMG i खिचड़ी भाषा का मानना ​​है कि मैं बहुत ही करीब था मैं इसे HTML नाम की तरह उपयोग करने की कोशिश कर रहा था = "मेरा सबमिट टेक्स्ट" धन्यवाद मुझे यह मिला जो मैं देख रहा था :)
रॉड नेल्सन

1
मुझे विश्वास नहीं हो रहा है कि यह बहुत ही साधारण बात इस विधि के लिए एपीआई डॉक्स में नहीं है ।
अनुदान बिर्चमिएर

4
यह मेरे लिए काम नहीं किया - मुझे <%= f.submit :value => "Login" %>इसके बजाय करना था । (रेलगाड़ी 3.2.11)
cassi.lup

2
यदि आप बटन शैली रखना चाहते हैं, तो आप कर सकते हैं: f.button: सबमिट करें, "My Submit Text"
jonathanrz

यह अन्य उत्तरों को पढ़ने के लायक है जो दिखाते हैं कि किसी फ़ाइल का उपयोग करके परिवर्तन कैसे करें जैसे config/locales/en.yml
cwd

63

यदि आप सभी बनाएं और अपडेट फ़ॉर्म सबमिट टैग को बदलना चाहते हैं, तो यह परिवर्तन करना आसान है। ऐसे संशोधित config/locales/en.ymlकरें:

en:
  helpers:
    submit:
      create: "Crear un %{model}"
      update: "Confirmar cambios al %{model} creado"

55
मुझे पसंद है कि आप अंग्रेजी वाक्यांशों में स्पेनिश वाक्यांश कैसे डालते हैं!
ग्रेव

मैं इस उत्तर को संपादित करना चाहता था, लेकिन मैं लोगों को यहां आने देना चाहता था, और मुस्कुराता था (जब तक कि वे एक नया बग नहीं मारते)।
अर्सलान अली

43

@ डैनियल के उत्तर पर बिल्डिंग, आप प्रति-मॉडल आधार पर टैग मान सबमिट कर सकते हैं :

en:
  helpers:
    submit:
      model_name:
        create: "Create"
        update: "Update"

और फिर अपने रूप में आप सिर्फ उपयोग कर सकते हैं:

<%= f.submit %>

प्रलेखन के लिए यहाँ देखें (दूसरा उदाहरण।)


16

आप उपयोग कर सकते हैं:

<%= f.submit 'Name of the submit button' %>

इस तरह के प्रश्नों के लिए, उपलब्ध डॉक्स का उपयोग करने पर विचार करें

कभी-कभी, नीचे की तरह एक Google खोज में मदद मिलती है:


3
इसका सिर्फ इतना आसान है कि यहाँ कोई उदाहरण के साथ उन्हें डॉक्स पढ़ने की कोशिश कर रहा है!
रॉड नेल्सन

2
मुझे लगता है कि रूबी डॉक्स को बहुत निराशा होती है जब यह विशिष्ट हाउ-डू-आई-एक्स-एक्सएक्सएक्स सवालों के जवाब देने की बात आती है।
१५:१३

6

एरब में लिखते समय

<%= f.submit "your text" %>

HAML में लिखते समय

= f.button :submit, "your text"

में Haml अल्पविराम होना चाहिए के बाद अन्यथा प्रस्तुत यह त्रुटि फेंक देते हैं।


2
कोमा का होना जरूरी नहीं है, मेरे बिना काम करता है।
एरब

हाँ, आप सही हैं। = f.button: सबमिट करें, "आपका पाठ"
पुलकित अग्रवाल

अल्पविराम का उपयोग मेरे लिए एक त्रुटि फेंकता है (और यह एक के बिना ठीक काम करता है) रेल 4 (कोई हैलम नहीं) पर।
इंद्रधनुषी 5

@naomisorbet हाँ, इसीलिए मैंने इसे अपनी 2 टिप्पणी में सही किया है। कृपया जांचें।
पुलकित अग्रवाल

1
हाँ। मैंने पहले उत्तर को देखा और यह एक त्रुटि थी। मैंने बस कॉमा को जोड़ा जैसे आपने कहा और यह काम किया।
स्वीट_चेरी

5

मुझे यह समस्या थी और मुझे केवल मॉडल नाम का इस तरह अनुवाद करना था:

pt-br:
  activerecord:
    models:
      user:
        one: "Usuário"
        more: "Usuários"

यह @ डैनियल के उत्तर को भी पूरक करेगा जिसने मुझे संकेत दिया कि क्या गायब था। हालांकि, मुझे लगता है कि @ डैनियल का जवाब वास्तव में आवश्यक नहीं है क्योंकि यह पहले से ही रेल-आई 18 एन पर है


2

कभी-कभी उपयोग किए गए पाठ के कारण सहायकों का उपयोग करना स्वीकार्य नहीं होता है या आपको अतिरिक्त रूप से कक्षा आदि जोड़ने की आवश्यकता होती है, इसलिए आप सीधे ओवरराइड कर सकते हैं value:

<%= f.submit class: 'btn btn-primary', value: 'Login' %>

या:

<%= f.button :submit, class: 'btn btn-primary', value: 'Login' %>

वैसे इसका उल्लेख @ cassi.lup द्वारा टिप्पणी में स्वीकृत उत्तर के लिए किया गया था।

रेल 4.2.3 पर परीक्षण किया गया।


1

बस इस मामले में, मैं इस परिदृश्य के साथ प्रयास कर रहा था:

f.submit t('conf.begin') class: 'btn btn-outline btn-success'

लेकिन यह काम नहीं कर रहा था, समाधान कक्षा से पहले अल्पविराम के साथ था (यह मेरे लिए भीख मांगने पर स्पष्ट नहीं था):

f.submit t('conf.begin'), class: 'btn btn-outline btn-success'

चियर्स



0

इसका सरल, उपयोग

<%= f.submit 'Desired text on the button' %>
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.