Rails form_for标签的自定义文本


101

我想在中显示标签form_for

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

这将生成标签“名称”,但我希望它是“您的名称”。我该如何更改?

Answers:


184

labelhelper 的第二个参数将允许您设置自定义文本。

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

使用Ruby on Rails文档查找帮助程序方法。


1
谢谢!您能否让我知道如何在文档中查找类似内容?
Paul S.

2
只需转到上面的链接,然后在搜索框中键入您要查找的方法。labelActionView::Helpers::FormBuilder和下列出ActionView::Helpers::FormHelperActionView::Helpers::FormBuilder是我们感兴趣的一种,但没有描述。如果查看方法声明,则可以看到第二个参数是text。在此示例中,它不是很简单。但是该文档站点通常非常好。
gylaz 2012年

34

您可以通过i18n指定自定义标签文本。在中config/locales/en.yml,并假设您的用户模型名为user,您可以添加以下内容:

helpers:
    label:
      user:
        name: Your Name

这将使您继续使用

<%= f.label :name %>

无需硬编码Your Name

有关i18n的更多信息,请参阅。有关文档,label请参阅


0

具有导轨5.2.2的i18n可以完美地工作。

翻译设计表单或其他表单上的标签占位符按钮

<%= 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 %>

本地文件:config / locales / 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

在Rails 5.1.0上,上面接受的答案不起作用。

传递的第一个参数可用作自定义标签。

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

@NemyaNation,您能再解释一下吗?您的示例看起来与接受的答案完全相同。
SRack,

我记不清楚@SRack了,但是我记得我试图用单引号来创建一个标签,但是这对我不起作用'Mobile No:'。因此,通过更改为双引号"Mobile No:"可以解决我的问题。这可能是由于文件其余部分中缺少标签所致。我不确定,但我记得当时对我有用。
NemyaNation

4
感谢您的回复@NemyaNation。听起来这可能是您的具体问题,或者与插值/模板格式有关。Ruby / Rails不会在常规.html.erb文件中的单引号和双引号之间进行区分:)
SRack
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.