Rails: префикс пути к маршрутам - PullRequest
0 голосов
/ 04 марта 2012

Используя этот код,

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

1 Ответ

0 голосов
/ 19 июля 2013
scope module: 'admin', as: :v1 do
  resources :foobar
end

Это дает такие пути, как "v1_foobar_path"

Не знаю, если это поможет.

...