[ruby-on-rails] 레일 form_for 레이블에 대한 사용자 정의 텍스트

다음에서 레이블을 표시하고 싶습니다 form_for.

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

이렇게하면 “이름”레이블이 생성되지만 “이름”이되기를 원합니다. 어떻게 변경할 수 있습니까?



답변

label도우미 의 두 번째 매개 변수를 사용하면 사용자 지정 텍스트를 설정할 수 있습니다.

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

Ruby on Rails 문서 를 사용 하여 도우미 메서드를 찾습니다.


답변

i18n을 통해 사용자 정의 레이블 텍스트를 지정할 수 있습니다. 에서 config/locales/en.yml사용자 모델의 이름이라고 가정 user하면 다음을 추가 할 수 있습니다.

helpers:
    label:
      user:
        name: Your Name

이렇게하면 계속 사용할 수 있습니다.

<%= f.label :name %>

하드 코딩 할 필요없이 Your Name.

i18n에 대한 자세한 내용은 이를 참조 하십시오 . 에 대한 문서는 이것을label 참조하십시오 .


답변

레일 5.2.2가있는 i18n은 완벽하게 작동합니다.

고안 양식 또는 기타 양식의 레이블 , 자리 표시 자버튼 을 번역 합니다.

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


답변

Rails 5.1.0에서는 위의 답변이 작동하지 않습니다.

전달 된 첫 번째 매개 변수는 사용자 정의 레이블로 사용할 수 있습니다.

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


답변