it-swarm.com.ru

Пользовательский текст для Rails form_for метки

Я хочу отобразить метку в form_for:

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

Это создает метку "Имя", но я хочу, чтобы это было "Ваше имя". Как я могу это изменить?

89
Paul S.

Второй параметр label helper позволит вам установить пользовательский текст.

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

Используйте Документация по Ruby on Rails для поиска вспомогательных методов.

163
gylaz

Вы можете указать собственный текст метки через i18n. В config/locales/en.yml и, предполагая, что ваша модель пользователя называется user, вы можете добавить следующее:

helpers:
    label:
      user:
        name: Your Name

Это позволит вам продолжать использовать

<%= f.label :name %>

без необходимости жестко кодировать Your Name.

Для получения дополнительной информации о i18n, см. это . Документация на label ссылается на это .

29
hjing

i18n с Rails 5.2.2 это работает отлично.

Перевести метки , заполнители и кнопки на devise формы или другие формы.

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

На Rails 5.1.0 принятый ответ выше не работает.

Первый переданный параметр может использоваться как настраиваемая метка.

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