ราง link_to
วิธีการ!
หนึ่งในวิธีการช่วยเหลือทั่วไปที่คุณจะใช้ในแอปพลิเคชัน Rails ทั้งหมดของคุณ
แต่มันทำงานอย่างไร
หากคุณมาที่นี่เพื่อเรียนรู้เกี่ยวกับ link_to
และตัวเลือกต่างๆ ที่คุณสามารถใช้ได้ คุณก็มาถูกที่แล้ว!
ก่อน…
link_to
ทำอะไร link_to
ทำอย่างไร
สิ่งที่เว็บไซต์ทั้งหมดนี้ใช้งานได้เพราะเรามีลิงก์ระหว่างหน้าต่างๆ
นั่นคือวิธีที่คุณไปจากหน้าหนึ่งไปอีกหน้า
ใน HTML ธรรมดา คุณสร้างลิงก์แบบนี้ :
Improve Your Ruby Skills
แต่ใน Rails จะหน้าตาประมาณนี้ :
<%= link_to "Improve Your Ruby Skills", "/ruby-book" %>
ทำไม?
เพราะเราใช้เส้นทางใน Rails
เราต้องการใช้ประโยชน์จากสิ่งนั้นโดยใช้ _path
วิธีการ &ทำให้เป้าหมาย (href
) ของลิงก์ของเรา
การใช้ link_to
ทำให้ง่ายขึ้นเพราะเราไม่ต้องสอดแทรกค่า
นี่คือสิ่งที่ฉันหมายถึง :
">Improve Your Ruby Skills
ตอนนี้:
มาดูอาร์กิวเมนต์เสริมที่เป็นประโยชน์มากที่สุดซึ่งวิธีนี้รองรับ
Rails link_to ตัวเลือก &อาร์กิวเมนต์
อาร์กิวเมนต์แรกสำหรับ link_to
เป็นข้อความในลิงค์
อาร์กิวเมนต์ที่สอง?
เป็น URL ที่คุณกำลังเชื่อมโยงไป
คุณสามารถฮาร์ดโค้ดได้หากต้องการ แต่ส่วนใหญ่คุณจะใช้โมเดล Rails หรือ _path
วิธีการ
Rails จะเข้าใจสิ่งต่างๆ เมื่อคุณปฏิบัติตามข้อตกลงที่เหมาะสม
ตัวอย่างเช่น :
<%= link_to "Improve Your Ruby Skills", book_path(@book) %>
หรือ :
<%= link_to "Improve Your Ruby Skills", @book %>
คุณรู้ได้อย่างไรว่าควรใช้อันไหน
- รูปเอกพจน์เมื่อพูดถึงแหล่งข้อมูลเฉพาะ (หนังสือ)
- รูปพหูพจน์เมื่อพูดถึงคอลเล็กชัน (หนังสือ)
ตัวอย่าง :
# Plural <%= link_to "All Books", books_path %> # Singular <%= link_to "Edit Book", edit_book_path(@book) %>
ยังช่วยในการดูเส้นทางของคุณ (ด้วย rake routes
)
คอลัมน์ที่ 1 มีชื่อ (เช่น edit_book
) ที่คุณสามารถใช้ในลิงก์ของคุณโดยเพิ่ม _path
ไปเลย
ลบลิงค์พร้อมคำยืนยัน
สองตัวเลือกที่มีประโยชน์ที่คุณสามารถใช้ได้:
- ยืนยัน
- disable_with
ตัวอย่าง :
<%= link_to "Delete Book", @book, method: "delete", { confirm: "Are you sure?", disable_with: "Processing..." } %>
การดำเนินการเริ่มต้นสำหรับลิงก์คือคำขอ GET
หากคุณต้องการใช้การดำเนินการ “DELETE” คุณต้องระบุให้ชัดเจน .
แต่…
จะทำอย่างไรถ้าคุณต้องการลิงก์ไปยังหน้าที่แล้ว
ลองสิ่งนี้ :
<%= link_to "Back", :back %>
วิธีใช้คลาส CSS ที่กำหนดเองและแอตทริบิวต์ HTML
คุณทำให้ลิงก์ดูแตกต่างได้โดยใช้ CSS
ตัวอย่างเช่น :
<%= link_to "Get More Books", books_path, class: "index-link" %>
สมมติว่าคุณมี CSS นี้:
.index-link { color: blue; padding: 10px; }
หากคุณต้องการแอตทริบิวต์ HTML เพิ่มเติม (เช่น “id”) คุณสามารถเพิ่มได้หลังข้อความลิงก์ &URL ของลิงก์
วิธีสร้าง Query Params &Anchor Links
อีกตัวเลือกหนึ่งที่คุณอาจพบว่ามีประโยชน์คือความสามารถในการสร้างลิงก์ด้วยพารามิเตอร์การค้นหาและจุดยึด
เหตุใดจึงมีประโยชน์
เนื่องจากคุณจะสามารถเข้าถึงข้อมูลเพิ่มเติมจากผู้ควบคุมได้หลังจากที่ผู้ใช้คลิกลิงก์
มาดูตัวอย่างกัน!
หากต้องการสร้าง URL แบบนี้ :
"/search?q=all"
คุณก็ทำได้ :
<%= link_to "Search ALL", search_path(q: "all") %>
และสำหรับ URL นี้ :
"/books#programming"
คุณทำได้ :
<%= link_to "Programming Books", books_path(anchor: "programming") %>
รวมกับตัวช่วย URL (_path
/ _url
), link_to
มอบความยืดหยุ่นทั้งหมดที่คุณต้องการ
การเชื่อมโยงไปยังรูปภาพ
หลายคนไม่รู้ว่า link_to
ใช้บล็อกเสริม
ซึ่งจะช่วยให้เกิดสถานการณ์ที่ซับซ้อนขึ้นได้
ชอบลิงก์ไปยังรูปภาพ :
<%= link_to books_path do %> <%= image_tag "Book Collection" %> <% end %>
ในตัวอย่างนี้ เนื้อหาของบล็อกจะกลายเป็นข้อความเชื่อมโยง รูปภาพ หรือองค์ประกอบ HTML อื่นๆ ที่คุณต้องการให้คลิกได้
สรุป
คุณได้เรียนรู้เกี่ยวกับ link_to
วิธีการใน Rails!
หากคุณพบว่าบทความนี้มีประโยชน์ โปรดซื้อหนังสือ Ruby ของฉันเพื่อที่คุณจะได้เพิ่มพูนทักษะ Ruby ของคุณและสนับสนุนงานของฉัน
ขอบคุณที่อ่านนะคะ 🙂