:name_prefix不影响命名空间路由上的任何内容

时间:2013-04-08 11:48:57

标签: ruby-on-rails ruby-on-rails-3 routes

我正试着用一天时间来解决这个......

将应用程序从rails 2移动到rails 3,我遇到了Routes的一些问题。

我想在'namespace'方法上使用:name_prefix选项。我能这样做吗?

我尝试使用'scope'选项获得相同的结果,但仍然走到了尽头。

以下是示例代码及其产生的路线:

namespace :blog, :name_prefix => 'admin_' do
  resources :contexts   
end

scope :module => 'blog', :path_name_prefix => 'admin_' do
  resources :contexts   
end

rake routes:

blog_contexts GET    /blog/contexts(.:format) blog/contexts#index {:name_prefix=>"admin_"}
              POST   /blog/contexts(.:format) blog/contexts#create {:name_prefix=>"admin_"} new_blog_context GET    /blog/contexts/new(.:format) blog/contexts#new {:name_prefix=>"admin_"} edit_blog_context GET    /blog/contexts/:id/edit(.:format) blog/contexts#edit {:name_prefix=>"admin_"}

blog_context GET    /blog/contexts/:id(.:format) blog/contexts#show {:name_prefix=>"admin_"}
             PUT    /blog/contexts/:id(.:format) blog/contexts#update {:name_prefix=>"admin_"}
             DELETE /blog/contexts/:id(.:format) blog/contexts#destroy {:name_prefix=>"admin_"}


contexts GET    /contexts(.:format) blog/contexts#index {:path_name_prefix=>"admin_"}   

       POST   /contexts(.:format) blog/contexts#create {:path_name_prefix=>"admin_"} new_context GET   

/contexts/new(.:format) blog/contexts#new {:path_name_prefix=>"admin_"} edit_context GET    /contexts/:id/edit(.:format) blog/contexts#edit {:path_name_prefix=>"admin_"} context GET    /contexts/:id(.:format) blog/contexts#show {:path_name_prefix=>"admin_"}
        PUT    /contexts/:id(.:format) blog/contexts#update {:path_name_prefix=>"admin_"}
        DELETE /contexts/:id(.:format) blog/contexts#destroy {:path_name_prefix=>"admin_"}

很难注意到差异,但命名空间方法将其名称添加到(1)路径名,(2)路径本身 - 您在浏览器中看到的内容,以及(3)作为控制器前缀。

范围方法仅添加控制器前缀。

如您所见,:name_prefix不会影响路径名中的任何内容 - 我缺少什么?

1 个答案:

答案 0 :(得分:1)

我不能100%确定我是否理解正确,但你可能想做这样的事情:

scope :admin do
  scope :blog do
    resources :contexts
  end
end

选项B(但不是很好)将是:

scope :blog, :as => 'admin_blog'
  resources :contexts
end
相关问题