Adding prefix to a named route helper under namesp

2020-02-26 11:35发布

问题:

This is how a common namespace looks like.

namespace :admin do
  resources :posts
end

And it creates a named route like this one;

new_admin_post_path

Here's my question; how can I add a prefix (like "new" in this example) to a named route under namespace?

Let's say my route definition likes this one;

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

And it's creates a named route like;

admin_post_path

I want to add "new" prefix to this named route and make it look like new_admin_post_path and I don't want to use resources.

回答1:

Just try the code in routes.

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

If you don't want to make admin namespace as nil, then you can do it. for that you need to put that route out of the namespace :admin block in routes

namespace :admin do
   # your other routes
end

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