在命名空间下为命名路由助手添加前缀

时间:2013-06-27 12:42:33

标签: ruby-on-rails rails-routing

这是常见命名空间的样子。

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

1 个答案:

答案 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'