2011-01-22 118 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。