鉴于用户资源,它就像这样
/用户/:短名称
但是如何删除控制器名称才能获得
/:短名称
如何在routes.rb中声明这一点,同时保持所有CRUD功能的即时性?
更新:阅读this之后,我将转向使用Rails的Sinatra来更好地处理这种类似API的设计。
答案 0 :(得分:1)
在路线中,您应该可以执行类似
的操作resource :users, :path => '/:shortname'
尝试一下并rake routes
看看是否按预期出现。
答案 1 :(得分:1)
定义自定义匹配:
match ':shortname' => 'users#action'
将 users#action 中的操作替换为应该接收请求的操作的名称。只需记住在路线文件中以适当的顺序放置它。 Rails从顶部开始查看路由文件的每一行,并选择第一个匹配的路由。 ':shortname'会匹配任何第一级路径,包括/ users!所以把它放在使用第一级路径的任何路由下面,其中包括所有资源路由。这是一个例子:
resources :users
resources :posts
match '/blog' => 'posts#index'
match ':shortname' => 'users#action'