Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Ruby

วิธีใช้งาน Rails link_to Method (พร้อมตัวอย่าง)

ราง 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 ของคุณและสนับสนุนงานของฉัน

ขอบคุณที่อ่านนะคะ 🙂