Я хочу отображать метку в form_for
:
<div class="field">
<%= f.label :name %><br />
<%= f.text_field :name %>
</div>
Это создает ярлык «Имя», но я хочу, чтобы оно было «Ваше имя». Как я могу это изменить?
Ответы:
Второй параметр label
helper позволит вам установить собственный текст.
<%= f.label :name, 'Your Name' %>
Используйте документацию Ruby on Rails для поиска вспомогательных методов.
label
указан под ActionView::Helpers::FormBuilder
и ActionView::Helpers::FormHelper
. ActionView::Helpers::FormBuilder
это тот, который нас интересует, но описания нет. Если вы посмотрите на объявление метода, вы увидите, что второй параметр равен text
. В этом примере все не так просто. Но этот сайт документации обычно довольно хорош.
Вы можете указать собственный текст метки через i18n. В config/locales/en.yml
и при условии, что ваша модель пользователя названа user
, вы можете добавить следующее:
helpers:
label:
user:
name: Your Name
Это позволит вам продолжать использовать
<%= f.label :name %>
без необходимости жесткого кодирования Your Name
.
Для получения дополнительной информации о i18n см это . Документация на label
ссылку на это .
Переводите метки , заполнители и кнопки в формах разработки или других формах.
<%= 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