Computer >> Máy Tính >  >> Lập trình >> Ruby

Cách sử dụng phương pháp link_to của Rails (Có ví dụ)

Rails link_to phương pháp!

Một trong những phương pháp trợ giúp phổ biến nhất mà bạn sẽ sử dụng trong tất cả các ứng dụng Rails của mình.

Nhưng nó hoạt động như thế nào?

Nếu bạn đến đây để tìm hiểu về link_to &các tùy chọn khác nhau mà bạn có thể sử dụng với nó thì bạn đang ở đúng nơi!

Đầu tiên…

Cái gì link_to làm gì?

Chà, toàn bộ trang web này chỉ hoạt động vì chúng tôi có liên kết giữa các trang.

Đó là cách bạn chuyển từ trang này sang trang khác.

Trong HTML thuần túy, bạn tạo một liên kết như thế này :

Improve Your Ruby Skills

Nhưng trong Rails sẽ trông như thế này :

<%= link_to "Improve Your Ruby Skills", "/ruby-book" %>

Tại sao?

Bởi vì chúng tôi sử dụng các tuyến đường trong Rails.

Chúng tôi muốn tận dụng điều đó bằng cách sử dụng _path phương pháp &biến nó thành mục tiêu (href ) của liên kết của chúng tôi.

Sử dụng link_to làm cho điều này dễ dàng hơn vì chúng tôi không phải nội suy giá trị.

Ý tôi là như vậy :

">Improve Your Ruby Skills

Bây giờ:

Hãy xem xét sâu hơn các đối số tùy chọn hữu ích nhất được hỗ trợ bởi phương pháp này.

Rails link_to Tùy chọn &Đối số

Đối số đầu tiên cho link_to là văn bản trên liên kết.

Đối số thứ hai?

Đó là URL mà bạn đang liên kết đến.

Bạn có thể mã hóa nó nếu bạn muốn, nhưng hầu hết thời gian bạn sẽ sử dụng mô hình Rails hoặc _path phương pháp.

Rails sẽ tìm ra mọi thứ khi bạn tuân theo các quy ước thích hợp.

Ví dụ :

<%= link_to "Improve Your Ruby Skills", book_path(@book) %>

Hoặc :

<%= link_to "Improve Your Ruby Skills", @book %>

Làm thế nào để bạn biết cái nào sẽ sử dụng?

  • Dạng số ít khi đề cập đến một tài nguyên cụ thể (sách)
  • Dạng số nhiều khi đề cập đến một bộ sưu tập (sách)

Ví dụ :

# Plural
<%= link_to "All Books", books_path %>

# Singular
<%= link_to "Edit Book", edit_book_path(@book) %>

Nó cũng giúp xem xét các tuyến đường của bạn (với rake routes ).

Cột đầu tiên có tên (như edit_book ) mà bạn có thể sử dụng trong các liên kết của mình bằng cách thêm _path với nó.

Xóa liên kết có xác nhận

Hai tùy chọn hữu ích bạn có thể sử dụng:

  • xác nhận
  • disable_with

Ví dụ :

<%= link_to "Delete Book", @book, method: "delete", { confirm: "Are you sure?", disable_with: "Processing..." } %>

Hành động mặc định cho một liên kết là một yêu cầu GET.

Nếu bạn muốn sử dụng hành động “XÓA”, bạn cần phải cụ thể về hành động đó .

Nhưng…

Điều gì xảy ra nếu bạn muốn một liên kết đến trang trước?

Hãy thử điều này :

<%= link_to "Back", :back %>

Cách sử dụng các lớp CSS tùy chỉnh &các thuộc tính HTML

Bạn có thể làm cho các liên kết của mình trông khác bằng cách sử dụng CSS.

Ví dụ :

<%= link_to "Get More Books", books_path, class: "index-link" %>

Giả sử bạn có CSS ​​này:

.index-link {
  color: blue;
  padding: 10px;
}

Nếu bạn cần thêm các thuộc tính HTML (như “id”), bạn có thể thêm chúng vào sau văn bản liên kết và URL liên kết.

Cách tạo tham số truy vấn &liên kết cố định

Một tùy chọn khác mà bạn có thể thấy hữu ích là khả năng tạo liên kết với các tham số và neo truy vấn.

Tại sao điều đó lại hữu ích?

Vì bạn có thể truy cập dữ liệu bổ sung này từ bộ điều khiển của mình sau khi người dùng nhấp vào liên kết.

Hãy xem một số ví dụ!

Nếu bạn muốn tạo một URL như thế này :

"/search?q=all"

Sau đó, bạn có thể làm điều này :

<%= link_to "Search ALL", search_path(q: "all") %>

Và cho URL này :

"/books#programming"

Bạn có thể làm điều này :

<%= link_to "Programming Books", books_path(anchor: "programming") %>

Kết hợp với trình trợ giúp URL (_path / _url ), link_to cung cấp cho bạn tất cả sự linh hoạt mà bạn cần.

Liên kết đến Hình ảnh

Nhiều người không biết rằng link_to lấy một khối tùy chọn.

Điều này cho phép các tình huống phức tạp hơn.

Như liên kết đến một hình ảnh :

<%= link_to books_path do %>
  <%= image_tag "Book Collection" %>
<% end %>

Trong ví dụ này, nội dung của khối trở thành văn bản liên kết, hình ảnh hoặc bất kỳ phần tử HTML nào khác mà bạn muốn có thể nhấp được.

Tóm tắt

Bạn đã học về link_to trong Rails!

Nếu bạn thấy bài viết này hữu ích, hãy lấy một bản sao cuốn sách Ruby của tôi để bạn có thể nâng cao kỹ năng Ruby của mình và hỗ trợ công việc của tôi.

Cảm ơn vì đã đọc 🙂