Rails:为作用域路由的路径添加前缀

时间:2012-03-03 20:15:45

标签: ruby-on-rails rest routes ruby-on-rails-3.2

使用此代码,

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 :(得分:0)

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

这给出了像“v1_foobar_path”

这样的路径

Dunno,如果这有用的话。