web-dev-qa-db-de.com

Benutzerdefinierter Text für Rails form_for label

Ich möchte ein Etikett in form_for anzeigen:

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

Dies erzeugt das Label "Name", aber ich möchte, dass es "Your Name" ist. Wie kann ich das ändern?

83
Paul S.

Mit dem zweiten Parameter für label können Sie benutzerdefinierten Text festlegen.

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

Verwenden Sie Ruby on Rails Documentation , um nach Hilfsmethoden zu suchen.

163
gylaz

Sie können benutzerdefinierten Beschriftungstext über i18n angeben. In config/locales/en.yml können Sie unter der Annahme, dass Ihr Benutzermodell user heißt, Folgendes hinzufügen:

helpers:
    label:
      user:
        name: Your Name

So können Sie weiter verwenden

<%= f.label :name %>

ohne Your Name hardcode zu müssen.

Weitere Informationen zu i18n finden Sie unter this . Die Dokumentation zur label bezieht sich auf this .

29
hjing

i18n with Rails 5.2.2 das funktioniert perfekt.

Übersetzen Sie Beschriftungen, Platzhalter und Schaltflächen in devise - Formularen oder anderen Formularen.

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

lokale Datei: config/locales/de.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

Auf Rails 5.1.0 funktioniert die oben akzeptierte Antwort nicht.

Der erste übergebene Parameter kann als benutzerdefiniertes Etikett verwendet werden.

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