다음에서 레이블을 표시하고 싶습니다 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
.
답변
레일 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:" %>