给定用户的资源,它是这样的如何在Rails3中的REST设计中删除控制器名称?
/用户/:短名称
但是,如何才能控制器名称中移除得到公正
/:短名称
我怎样才能申报这在routes.rb中同时保持所有CRUD功能的即时?
更新:阅读this我正在转向Sinatra over Rails以更好地处理这种API类设计。
给定用户的资源,它是这样的如何在Rails3中的REST设计中删除控制器名称?
/用户/:短名称
但是,如何才能控制器名称中移除得到公正
/:短名称
我怎样才能申报这在routes.rb中同时保持所有CRUD功能的即时?
更新:阅读this我正在转向Sinatra over Rails以更好地处理这种API类设计。
定义一个定制的匹配:
match ':shortname' => 'users#action'
在用户#行动与应该接收请求的动作名称替换行动。只要记住在您的路线文件中以适当的顺序放置它。 Rails从顶部开始查看路由文件的每一行,并选择第一个匹配的路由。 ':shortname'将匹配任何第一级路径,包括/ users!因此,使用第一级路径将其放在任何路线下面,这将包括您的所有资源路线。这里有一个例子:
resources :users
resources :posts
match '/blog' => 'posts#index'
match ':shortname' => 'users#action'
在路线,你应该能够做到像
resource :users, :path => '/:shortname'
尝试了这一点,并rake routes
,看看是否能出来的预期。
不确定你的意思,这里。你的意思是`/ users /:shortname`吗? – 2011-01-27 07:26:11
对,更新。 – Martin 2011-01-27 07:39:11
我确定这个问题已被询问至少3次,我已经回答了其中一个,但我找不到它... – 2011-01-27 08:19:00