2013-05-15 71 views
0

我有类似下面的路由。如果我有这样的路线,有可能吗?路由错误:当分割控制器路由到名称空间路由时未初始化的常量

#config/routes 
resources :subscribers, only: [:index, :show] 

namespace :admin do 
    resources :subscribers, only: [:new, :edit, :update, :create, :destroy] 
end 

我试图运行耙路线,其结果是

admin_subscribers  POST /admin/subscribers(.:format)  admin/subscribers#create 
new_admin_subscriber GET /admin/subscribers/new(.:format) admin/subscribers#new 
edit_admin_subscriber GET /admin/subscribers/:id/edit(.:format) admin/subscribers#edit 
admin_subscriber  PUT /admin/subscribers/:id(.:format) admin/subscribers#update 
         DELETE /admin/subscribers/:id(.:format) admin/subscribers#destroy 
subscribers   GET /subscribers(.:format)   subscribers#index 
subscriber   GET /subscribers/:id(.:format)  subscribers#show 

结果是适当的与我的期望,但是当我跑我的RSpec我得到错误

Routing Error 
uninitialized constant Admin::SubscribersController 
Try running rake routes for more information on available routes. 

我在下面在我的Rspec助手中添加了以下代码

#spec/spec_helper.rb 

Spork.each_run do 
### 

    if /spork/i =~ $0 || RSpec.configuration.drb? 
    ActiveSupport::Dependencies.clear 
    end 

### 

end 

但是,如果我将浏览器启动到htt **:// l * alhost:3000/admin/subscribers/new,那么一切正常。 我错过了什么吗?

回答

0

,如果你想航线/admin/subscribersSubscribersController(不Admin::模块前缀)在docs

说,你可以使用的scope代替namespace

​​
+0

的命名空间,这是可行的:) –

0

我不认为你需要在admin下命名空间。您只需填写SubscribersController上的所有操作,并适当设置createupdate等的权限。

+0

其实我试图创建页面仅限管理员。所以,为了减少一些路由/ URL混淆,我将其分割为admin –

相关问题