2010-04-23 15 views
5

Estoy configurando una aplicación de directorio para la que necesito tener dos interfaces separadas para la misma tabla de Usuarios. Básicamente, los administradores usan el controlador y las vistas de los usuarios para listar, editar y agregar usuarios, mientras que los que no son administradores necesitan una interfaz separada que enumere a los usuarios de una manera completamente diferente. Para hacer esto, ¿podría simplemente configurar otro controlador con diferentes vistas pero que acceda al modelo de los usuarios?Múltiples controladores con un solo modelo

Lo siento si esta es una pregunta simple, pero he tenido dificultades para encontrar cómo hacerlo.

Respuesta

7

¿Por qué no poner la parte de administrador en un espacio de nombres separado? Tendría Admin::UsersController con vistas en app/views/admin/users/. Y sus usuarios irían al UsersController con sus propias vistas en app/views/users/.

El enrutamiento se define así:

map.namespace :admin do |admin| 
    admin.resources :users 
end 


map.resources :users 

Y se puede conseguir a través de admin_users_path y users_path

+0

había leído sobre los espacios de nombres, pero yo estaba preocupado de que su uso estaría en conflicto con mis recursos anidados. No es ese el caso? –

+0

@Eric: No, ese no es el caso en absoluto. Expandiré la respuesta original. –

Cuestiones relacionadas