Используя этот код,
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_')
Но это не работает.
Примечание: я работаю над Rails 3.2.2