2012-02-19 21 views
6

Tôi có một tuyến đường không có tài nguyên sử dụng mã thông báo SHA trong tuyến đường. Ở đây nó có trong tệp routes.rb của tôi:Đường dẫn link_to tới một tuyến đường không có nguồn lực là gì?

match 'permissions/confirm/:token' => 'permissions#confirm' 

Tôi có thể truy cập tuyến đường đã tạo nhưng tôi không biết phải chuyển cho liên kết trợ giúp.

Dưới đây là những gì tôi đang sử dụng cho link_to, mà không hoạt động:

<%= link_to "Give permission", confirm_permission_path(:token => @permission.token) %> 

Suy nghĩ?

Trả lời

11

Thêm :as chìa khóa để tuyến đường của bạn như match 'permissions/confirm/:token' => 'permissions#confirm', :as => :confirm_permissions

Sau đó <%= link_to "Give permission", confirm_permissions_path(:token => @permission.token) %>

+0

Điều đó có vẻ hợp lý, và có vẻ tốt khi tôi nhìn vào 'rake route', nhưng tôi vẫn nhận được một lỗi phương thức undefined:' undefined method confirm_permission_path'. – Scott

+0

Có phải là nó phải là 'confirm_permissions_path', số nhiều. –

+0

Vâng, đó dường như là vấn đề. Cảm ơn! – Scott

3

Bạn luôn có thể sử dụng rake routes để tìm ra tên của đường dẫn. Tôi kiểm tra lại đầu ra của tác vụ cào đó mọi lúc để đảm bảo rằng tôi đang sử dụng đúng tuyến đường yên tĩnh hoặc không yên tĩnh.

+0

'cào routes' cho thấy rằng con đường là '/ quyền/xác nhận /: token (:. Định dạng)'. Nhưng tôi không chắc chắn những gì link_to helper nên trông giống như cho tuyến đường đó. – Scott

+4

Khi bạn chạy 'các tuyến đường rake', có 3 cột dữ liệu. Cột đầu tiên là đường dẫn link_to, ví dụ: 'users_path'. Cột thứ hai là định dạng (ví dụ '/ users/index (.: Format)' Và cuối cùng, cột thứ ba là hành động và controller (ví dụ '{: controller => etc ...}'. đầu tiên cột và bạn sẽ thấy dữ liệu bạn cần – MrDanA

Các vấn đề liên quan