2012-03-03 97 views
0

使用该码的路径,滑轨:前缀作用域路由

scope(:module => 'api', constraints: {subdomain: 'api'}, defaults: {format: 'json'}) do 
    scope('1', module: 'v1') do 
    resources :posts 
    end 
end 

以下路线被创建:

posts  GET /1/posts(.:format)   api/v1/posts#index {:format=>"json"} 
      POST /1/posts(.:format)   api/v1/posts#create {:format=>"json"} 
new_post GET /1/posts/new(.:format)  api/v1/posts#new {:format=>"json"} 
edit_post GET /1/posts/:id/edit(.:format) api/v1/posts#edit {:format=>"json"} 
post  GET /1/posts/:id(.:format)  api/v1/posts#show {:format=>"json"} 
      PUT /1/posts/:id(.:format)  api/v1/posts#update {:format=>"json"} 
      DELETE /1/posts/:id(.:format)  api/v1/posts#destroy {:format=>"json"} 

作用域路线中的API的名称空间是有用的,这样,当API变化,没有任何碰撞。除路径...

我们如何才能前缀的路径(与v1例如),才能有:

  • v1_posts
  • v1_new_post
  • v1_edit_post
  • v1_post

我试着加:name_prefix => 'v1_'这样:

scope('1', module: 'v1', name_prefix: 'v1_') 

但这不起作用。

注:我on Rails的3.2.2

+0

尝试https://github.com/intridea/grape – lucapette 2012-03-03 20:24:56

+0

构建目前已破解,并且对于我的需要,这似乎过分了。我想用Rails本身来做。 – Doug 2012-03-03 20:43:00

+0

你不必使用主。重新创造轮子总是矫枉过正。但我理解这种感觉。 – lucapette 2012-03-03 20:58:42

回答

0
scope module: 'admin', as: :v1 do 
    resources :foobar 
end 

工作这给了像 “v1_foobar_path”

说不上路径,如果这是有帮助的。