这是常见命名空间的样子。
namespace :admin do
resources :posts
end
它会创建一个像这样的命名路线;
new_admin_post_path
这是我的问题;如何在命名空间下添加前缀(如本例中的“new”)?
假设我的路线定义喜欢这个;
namespace :admin do
get 'post/new' => 'posts#new', as: 'post'
end
它创建了一个名为;
的命名路线admin_post_path
我想在此命名路由中添加“new”前缀,并使其看起来像new_admin_post_path
,我不想使用resources
。
答案 0 :(得分:9)
只需尝试路线中的代码。
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'