rails form_for标签的自定义文本

时间:2012-10-22 00:32:02

标签: ruby-on-rails ruby ruby-on-rails-3.2 form-for

我想在form_for中显示标签:

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

这会生成标签“Name”,但我希望它是“你的名字”。我怎样才能改变它?

4 个答案:

答案 0 :(得分:168)

label帮助器的第二个参数将允许您设置自定义文本。

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

使用Ruby on Rails Documentation查找辅助方法。

答案 1 :(得分:31)

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

helpers:
    label:
      user:
        name: Your Name

这将允许您继续使用

<%= f.label :name %>

无需硬编码Your Name

有关i18n的更多信息,请参阅thislabel上的文档引用了this

答案 2 :(得分:0)

带有导轨5.2.2的i18n可以正常工作。

devise 表单或其他表单上

翻译标签占位符按钮

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

答案 3 :(得分:-1)

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

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

node