2011-01-22 114 views
93

我已經在下面列出了我的_form.html.erb文件,我想要做的是更改提交按鈕上的文本我知道如何在html中執行它,但不是舒爾如何做到這一點在Rails 3中Rails 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 %> 

回答

166

,而不是

<%= f.submit %> 

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

OMG我不相信我是如此關閉我試圖使用它像HTML名稱=「我的提交文本」謝謝這讓我想我:) – 2011-01-22 17:56:48

+1

我不能相信這個非常簡單的事情不是'在這個方法的API文檔中(http://api.rubyonrails.org/classes/ActionView/Helpers/FormBuilder.html#method-i-submit)。 – 2013-03-15 18:14:13

+4

這不適合我 - 我不得不做`<%= f.submit:value =>「登錄」%>`。 (Rails 3.2.11) – 2013-03-20 10:56:02

57

如果要更改所有創建和更新表單提交標記,則此更改很容易實現。修改config/locales/en.yml像這樣:

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

@丹尼爾的回答號樓上,你還可以自定義在每個模型的基礎提交的變量值:

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

然後在你的表格,您可以只使用:

<%= f.submit %> 

here對於文檔(第二個例子)

2

我有這個問題,我只有型號名稱這樣翻譯:

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

這也將補充@丹尼爾的答案,給我的提示少了什麼。不過,我想,@丹尼爾的回答是不是真的有必要,因爲它已經在rails-i18n

0

它簡單,使用

<%= f.submit 'Desired text on the button' %> 
5

ERB寫作

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

時寫在HAML

= f.button :submit, "your text" 

HAML逗號應該在那裏後提交,否則會拋出錯誤。

1

以防萬一,我被這種情況下嘗試:

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

但它不工作,解決方法也和前級逗號(這不是明顯在開始時對我來說):

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

乾杯

0

有時使用的助手是不是因爲使用的文本的接受或者需要另加類等,這樣你就可以直接覆蓋value

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

或:

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

通過它被提及@中接受的答案評論cassi.lup的方式。

測試Rails 4.2.3。