7

这就是通用命名空间的样子。

namespace :admin do
  resources :posts
end

它创建了一个像这样的命名路由;

new_admin_post_path

这是我的问题;如何向命名空间下的命名路由添加前缀(如本例中的“新”)?

假设我的路线定义喜欢这个;

namespace :admin do
  get 'post/new' => 'posts#new', as: 'post'
end

它创建了一个命名路线,例如;

admin_post_path

我想为这个命名路由添加“新”前缀,让它看起来像new_admin_post_path我不想使用resources.

4

1 回答 1

10

只需尝试路线中的代码。

namespace :admin, as: '' do
   get '/post/new' => 'posts#new', as: 'new_admin_post'
end

如果您不想将 admin 命名空间设为 nil,那么您可以这样做。为此,您需要将该路由放在路由中的命名空间 :admin 块之外

namespace :admin do
   # your other routes
end

get '/admin/post/new' => 'admin/posts#new', :as => 'new_admin_post'
于 2013-06-27T13:23:41.013 回答