레일 form_for 레이블에 대한 사용자 정의 텍스트


102

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

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

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

답변:


185

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

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

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


1
감사합니다! 문서에서 이와 같은 것을 어떻게 찾을 수 있는지 알려주시겠습니까?
Paul S.

2
위의 링크로 이동하여 검색 상자에 찾고있는 방법을 입력하십시오. 및 label아래에 나열됩니다 . 우리가 관심을 갖고있는 것이지만 설명이 없습니다. 메서드 선언을 보면 두 번째 매개 변수가 . 이 예에서는 그리 간단하지 않습니다. 그러나 그 문서 사이트는 일반적으로 꽤 좋습니다. ActionView::Helpers::FormBuilderActionView::Helpers::FormHelperActionView::Helpers::FormBuildertext
gylaz

34

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

helpers:
    label:
      user:
        name: Your Name

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

<%= f.label :name %>

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

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


0

레일 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

-2

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

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

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

@NemyaNation 좀 더 설명해 주시겠습니까? 귀하의 예는 수락 된 답변과 정확히 동일합니다.
SRack

@SRack 정확히 기억할 수는 없지만 작은 따옴표를 사용하여 레이블을 만들려고했지만 작동하지 않았던 것을 기억합니다 'Mobile No:'. 그래서 큰 따옴표로 변경하여 "Mobile No:"내 문제를 해결했습니다. 파일의 나머지 부분에서 태그가 누락 되었기 때문일 수 있습니다. 확실하지는 않지만 그 당시 저에게 효과적 이었음을 기억합니다.
NemyaNation

4
@NemyaNation 답장에 감사드립니다. 귀하의 경우에 특별히 문제가되거나 보간 / 템플릿 형식과 관련된 문제 일 수 있습니다. Ruby / Rails는 일반 .html.erb파일 에서이 예제에서 작은 따옴표와 큰 따옴표를 구분하지 않습니다. :)
SRack
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.