web-dev-qa-db-fra.com

Texte personnalisé pour Rails form_for label

Je veux afficher une étiquette dans form_for:

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

Cela génère l’étiquette "Nom", mais je veux que ce soit "Votre nom". Comment puis-je le changer?

83
Paul S.

Le deuxième paramètre à label helper vous permettra de définir un texte personnalisé.

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

Utilisez Documentation Ruby on Rails pour rechercher des méthodes d'assistance.

163
gylaz

Vous pouvez spécifier un texte d'étiquette personnalisé via i18n. Dans config/locales/en.yml, et en supposant que votre modèle utilisateur s'appelle user, vous pouvez ajouter les éléments suivants:

helpers:
    label:
      user:
        name: Your Name

Cela vous permettra de continuer à utiliser

<%= f.label :name %>

sans avoir à coder en dur Your Name.

Pour plus d'informations sur i18n, voir this . La documentation sur la label fait référence à this .

29
hjing

i18n avec Rails 5.2.2 cela fonctionne parfaitement.

Traduire labels , espaces réservés et boutons sur concevoir formes ou autres.

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

fichier local: 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
0
RodneyH

Sur Rails 5.1.0, la réponse acceptée ci-dessus ne fonctionne pas.

Le premier paramètre passé peut être utilisé comme étiquette personnalisée.

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