2011-01-27 53 views
1

給定用戶的資源,它是這樣的如何在Rails3中的REST設計中刪除控制器名稱?

/用戶/:短名稱

但是,如何才能控制器名稱中移除得到公正

/:短名稱

我怎樣才能申報這在routes.rb中同時保持所有CRUD功能的即時?

更新:閱讀this我正在轉向Sinatra over Rails以更好地處理這種API類設計。

+0

不確定你的意思,這裏。你的意思是`/ users /:shortname`嗎? – 2011-01-27 07:26:11

+0

對,更新。 – Martin 2011-01-27 07:39:11

+0

我確定這個問題已被詢問至少3次,我已經回答了其中一個,但我找不到它... – 2011-01-27 08:19:00

回答

1

定義一個定製的匹配:

match ':shortname' => 'users#action' 

用戶#行動與應該接收請求的動作名稱替換行動。只要記住在您的路線文件中以適當的順序放置它。 Rails從頂部開始查看路由文件的每一行,並選擇第一個匹配的路由。 ':shortname'將匹配任何第一級路徑,包括/ users!因此,使用第一級路徑將其放在任何路線下面,這將包括您的所有資源路線。這裏有一個例子:

resources :users 
resources :posts 
match '/blog' => 'posts#index' 
match ':shortname' => 'users#action' 
1

在路線,你應該能夠做到像

resource :users, :path => '/:shortname' 

嘗試了這一點,並rake routes,看看是否能出來的預期。

相關問題