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?
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.
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 .
Ü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
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:" %>