url_for
cung cấp cho bạn url đầy đủ đến trang web, ví dụ: www.example.com/my/path
sẽ đến từ một cái gì đó như url_for my_path_url
.
link_to
cung cấp cho bạn một liên kết đến một đường dẫn cụ thể, ví dụ:
link_to example_path,"click me"
sẽ cho kết quả trong
<a href="www.example.com/my/path">click me</a>
Bạn cũng có thể sử dụng điều này với url_for
như thế này:
link_to url_for(my_resource_path)
resource_path
được sử dụng để tham chiếu đường dẫn trong tệp routes.rb
của bạn. Ví dụ: nếu bạn có
match '/my/:id/page' => 'my#page'
bạn có thể sử dụng my_page_path(...)
.
Nếu bạn cần :id
cho đường dẫn, bạn có thể vượt qua nó như trong các thông số để resource_path
của bạn như thế này: my_page_path(current_user.id)
.
Bên cạnh đó, bạn có thể thêm vào tham số truy vấn khác bằng cách gắn thêm họ các thông số tuyến đường định sẵn:
my_page_path(current_user.id,:hello => "world")
Bạn hỏi về việc liệu bạn có thể thêm đường dẫn đến một con đường hiện có. Có, bạn có thể, vì các hàm này đơn giản trả về chuỗi cho người gọi, vì vậy cho tất cả các ý định và mục đích bạn có thể làm chính xác những gì bạn đã viết miễn là đường dẫn đó liên hợp với chuỗi của bạn thành một tuyến đường thích hợp.
Nguồn
2013-09-28 04:09:39
Bạn đã kiểm tra điều này chưa? http://guides.rubyonrails.org/routing.html#listing-existing-routes – depa