2011-09-01 28 views
5

Tôi có một bộ điều khiển trang có hai bản ghi trong db; 'trang' và 'liên hệ'. Id cho mỗi bản ghi trang là tiêu đề. Làm cách nào để viết một tuyến đường cụ thể cho mỗi trang?đường ray đến id cụ thể

Tôi hiện đang có một nhận tất cả con đường mà hoạt động ...

match '/:id' => 'pages#show' 

nhưng tôi muốn tạo ra một tuyến đường duy nhất cho mỗi trang

Trả lời

8

tôi có lẽ không hiểu câu hỏi của bạn bởi vì tôi có không có ý tưởng tại sao bạn muốn làm điều đó;)

Nhưng dù sao, bạn có trang có tiêu đề/id "về". Đây là những gì tuyến đường của bạn có thể trông giống như:

match '/about' => 'pages#show', :defaults => { :id => 'about' } 

cf. http://guides.rubyonrails.org/routing.html#defining-defaults

Lưu ý: Tôi sẽ không gọi tuyến đường bạn đang sử dụng đã là "catchall"; đó là một tuyến đường Rails khá bình thường. Đây là những gì tôi sẽ gọi là catchall:

match ':controller(/:action(/:id))' 
+0

Tôi muốn chỉ định chúng để tôi có thể có đường dẫn, vì vậy bây giờ tôi đã khớp '/ about' => 'pages # show',: defaults => { : id => 'about'},: as =>: about –

+1

Gotcha. Có lẽ bạn đã cân nhắc điều này, nhưng vì không lặp lại mã, tôi sẽ đi với route ban đầu của bạn, thêm ': as =>: page' và sử dụng helper path' page_path (: id => 'about') '. –

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