Rails: ข้อความที่กำหนดเองสำหรับราง form_for label


103

ฉันต้องการแสดงป้ายกำกับในform_for:

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

สิ่งนี้สร้างป้ายกำกับ "ชื่อ" แต่ฉันต้องการให้เป็น "ชื่อของคุณ" ฉันจะเปลี่ยนได้อย่างไร?

คำตอบ:


186

พารามิเตอร์ตัวที่สองถึงตัวlabelช่วยจะช่วยให้คุณตั้งค่าข้อความที่กำหนดเองได้

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

ใช้Ruby on Rails Documentationเพื่อค้นหาวิธีการช่วยเหลือ


1
ขอบคุณ! โปรดแจ้งให้เราทราบว่าฉันจะค้นหาสิ่งนี้ในเอกสารประกอบได้อย่างไร
Paul S.

2
เพียงไปที่ลิงค์ด้านบนและพิมพ์วิธีการที่คุณต้องการในช่องค้นหา labelอยู่ภายใต้และActionView::Helpers::FormBuilder เป็นสิ่งที่เราสนใจ แต่ไม่มีคำอธิบาย ถ้าคุณดูที่ประกาศวิธีการที่คุณจะเห็นว่าพารามิเตอร์ที่สองคือ ในตัวอย่างนี้มันไม่ตรงไปตรงมามากนัก แต่ไซต์เอกสารนั้นมักจะค่อนข้างดี ActionView::Helpers::FormHelperActionView::Helpers::FormBuildertext
gylaz

34

คุณสามารถระบุข้อความฉลากที่กำหนดเองผ่านทาง i18n ในconfig/locales/en.ymlและสมมติว่ามีการตั้งชื่อรุ่นผู้ใช้ของuserคุณคุณสามารถเพิ่มสิ่งต่อไปนี้:

helpers:
    label:
      user:
        name: Your Name

วิธีนี้จะช่วยให้คุณใช้งานได้ต่อไป

<%= f.label :name %>

โดยไม่ต้อง Your Namehardcode

สำหรับข้อมูลเพิ่มเติมเกี่ยว i18n ดูนี้ เอกสารเกี่ยวกับการlabelอ้างถึงนี้


0

i18n พร้อมราง 5.2.2 ทำงานได้อย่างสมบูรณ์แบบ

แปลป้าย , ตัวยึดและปุ่มบนประดิษฐ์รูปแบบหรือรูปแบบอื่น ๆ

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

ไฟล์ local: 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
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.