rails form_for标签的自定义文本

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了rails form_for标签的自定义文本相关的知识,希望对你有一定的参考价值。

我想在form_for中显示一个标签:

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

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

答案

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

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

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

另一答案

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

helpers:
    label:
      user:
        name: Your Name

这将允许您继续使用

<%= f.label :name %>

无需硬编码Your Name

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

另一答案

i18n with rails 5.2.2 this works perfectly.

在设计表格或其他表格上翻译标签,占位符和按钮。

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

locals文件: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
另一答案

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

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

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

以上是关于rails form_for标签的自定义文本的主要内容,如果未能解决你的问题,请参考以下文章

form_for , 未定义的方法名

Rails 5:form_for 与 form_with

Rails 将 form_for 对象传递给部分

Rails:form_for 命名空间资源

如何在目标c中创建带有标签和文本字段的自定义单元格

如何从表格视图的自定义单元格内的文本字段中获取值(标签)以发布到 URL [重复]