2011-09-23 81 views
0

我的管理部分的结构是这样的:的Rails 3 - 路由的管理部分

controlers -> admin -> admin_controllers... 
views -> admin -> users -> data 
views -> admin -> settings -> data 

routes样子:

resources :users, :user_sessions 
match 'login' => 'user_sessions#new', :as => :login 
match 'logout' => 'user_sessions#destroy', :as => :logout 

编辑

namespace :admin do 
    ...  
    resources :users, :user_sessions 
    match 'login' => 'user_sessions#new', :as => :login 
    match 'logout' => 'user_sessions#destroy', :as => :logout 
    end 

但如果我设置了浏览器url地址admin/login,那么我将收到有关缺少模板的错误(特别是Missing template user_sessions/new)。这怎么可能?我忘了什么?

感谢

回答

0

使用命名空间,你必须使用这样的玛:

namespace :admin do 
    resources :users, :user_sessions 
end 

所有的意见应该在应用程序/视图/管理/,这样

app/views/admin/users/new.html.erb 

的API的细节在这里:http://guides.rubyonrails.org/routing.html#controller-namespaces-and-routing

+0

这就是奇怪的 - 我拥有它。 – user1946705

+0

什么是您的管理员的控制器名称?你遵循Ruby的名称约定:** Admin :: UsersController Anatoly

+0

实际上,您最好使用自己的Admin的应用程序控制器来嵌套范围控制器 – Anatoly