2010-09-10 24 views
9

Estoy migrando la mayoría de mi aplicación al espacio de nombres de administración y aunque hay muchas guías relacionadas con esto, todavía no puedo administrarlas. He estado siguiendo principalmente this answer, junto con los resultados que trae Google (todos tienden a estar de acuerdo). ¿Podría alguien decirme qué estoy haciendo mal para no perder más horas de sueño?Rails 3 Admin Espacio de nombres Problema

Aquí está el mensaje de error:

mal tipo de argumento Módulo (Clase espera)

app/controllers/application_controller.rb:1:in `<top (required)>' 
app/controllers/admin/admin_controller.rb:1:in `<top (required)>' 
app/controllers/admin/home_controller.rb:1:in `<top (required)>' 

routes.rb

namespace :admin do 
    root :to => "home#index" 

    resources :users 
end 

admin/admin_controller. rb

class Admin::AdminController < ApplicationController 

admin/home_controller.rb

class Admin::HomeController < Admin::AdminController 

admin/users_controller.rb

class Admin::UsersController < Admin::AdminController 

Estoy seguro de que es sobre todo algo sencillo para relacionado con el módulo y interacción del controlador, así que no he incluido ningún otro código. Sin embargo, debería haber encontrado la solución hasta ahora y, por favor, avíseme si se requiere algún código adicional.

Gracias.

+1

Parece correcto para mí ... – Arkan

+0

tal vez clase Admin :: AdminController <:: ApplicationController –

Respuesta

0

¿Tal vez tiene algo definido como Admin constante?
Pruebe una aplicación nueva con la misma estructura, luego agregue las piezas de la actual y vea dónde se rompe (No es tan buena sugerencia, ¿eh?).

utilizo la misma organización por admin como que ha pegado ...

0

"equivocado argumento de tipo de módulo (Clase esperado)"

Esto significa que se está definiendo una 'clase', pero ese nombre ya está definido como un "módulo" en otro lugar. Busque lo que podría ser ...

3

Le sugiero que cambie el nombre Admin::AdminController al Admin::BaseController.

0

¿Puedes seguir el siguiente código, tus controladores están bien, puedes usar las rutas que he especificado aquí.

class Admin::AdminController < ApplicationController 


class Admin::UsersController < Admin::AdminController 

Esto es lo mismo que lo que ha escrito, creo que sí.

namespace :admin do 
    resources :users do as_routes end 
end 
root :to => "home#index" 
6

me encontré con el problema inverso "tipo de argumento Clase mal (Módulo de espera)" y resultó que era un ayudante define como una clase en lugar de un módulo, por lo que trate de buscar las clases que se inadvertidamente definen como módulos . Como un controlador definido como un Módulo.

+0

Muchas gracias. : P me ayudó. – rewolf

0

@Russell, tengo ese problema haber creado AdminHelper modelo (con la intención de contener mensajes de ayuda de administrador) :)

tener cuidado en nombrar las cosas!

0

Me encontré con este problema cuando utilicé el archivo has_attached_file de paperclip con parámetros no válidos.

Cuestiones relacionadas