2011-07-20 39 views
9

Tôi cần một lời giải thích về cách tạo ra con đường mới trên đường ray 3. Tôi muốn liên kết này ví dụray 3: Cách tạo đường dẫn?

link_to "eat chocolate", eat_chocolate_user_path(user) 

được tương đương với

link_to "eat chocolate", :controller => 'user', :action=>'eat_chocolate', :id=> user 

Tôi đọc nhiều hướng dẫn về nó, bao gồm định tuyến của railsguide. Nhưng tôi vẫn không biết nó hoạt động như thế nào.

Trả lời

9

thêm dòng sau vào tệp routes.rb của bạn.

match 'user/eat_chocolate/:id' => 'user#eat_chocolate', :as => :eat_chocolate_user 

Tra cứu các tuyến được đặt tên để biết thêm thông tin.

+0

Cảm ơn bạn, tôi đã có thể để tạo ra các tuyến đường thành công, nhưng tôi đã không thể cung cấp cho nó một cái tên. – perello

+0

Tên của tuyến đường được chỉ định bằng tham số: làm tham số. Vì vậy, ở trên nên đã tạo eat_chocolate_user_path cho bạn. Đó có phải là không làm việc cho bạn? –

2

Trong một số trường hợp, tốt hơn nên sử dụng GET.

Sử dụng match sẽ chấp nhận tất cả các động từ http GETPUTPOSTDELETE có nghĩa là ai đó có thể có khả năng mis-sử dụng ứng dụng của bạn. Nếu tất cả các bạn đang làm là thể hiện một cái gì đó trong một hành động #show, bạn nên sử dụng này để thay thế

get 'user/eat_chocolate/:id' => 'user#eat_chocolate', :as => :eat_chocolate_user

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