到目前爲止,我能想出的最好的是這樣的:
map.resources :users
map.resources :users_by_login,
:controller => "User",
:only => [:show, :edit, :update, :destroy],
:requirements => {:by_login => true}
爲用戶創建通常的REST風格的路線,最重要的是,該users_by_login
資源增加了以下路線(只有那些):
GET /users_by_login/:id/edit
GET /users_by_login/:id/edit.:format
GET /users_by_login/:id
GET /users_by_login/:id.:format
PUT /users_by_login/:id
PUT /users_by_login/:id.:format
DELETE /users_by_login/:id
DELETE /users_by_login/:id.:format
這些路線實際上只映射到UserController
以及(對於show
/edit
/update
/destroy
方法)。添加了額外的by_login
參數(等於true
):通過這種方式,UserController
方法可以確定參數id
是代表登錄還是代表ID。
它可以完成這項工作,但我希望有更好的方法。
嗨vrish88,謝謝您的回答。對不起,我的問題還不夠清楚。我只是編輯它使其更清晰(我希望)。我同時找到了一個可能的解決方案(見下文)。這不是很好,所以我希望有人知道更好的方法。 – MiniQuark 2009-03-03 01:49:30