2010-09-10 5 views
9

Sto migrando la maggior parte della mia applicazione allo spazio dei nomi admin e mentre ci sono molte guide relative a questo, non riesco ancora a gestirlo. Ho seguito principalmente lo this answer, insieme ai risultati di Google (tutti tendono a concordare). Qualcuno potrebbe dirmi cosa sto facendo male quindi non perderò più sonno?Rails 3 Admin Namespace Numero

Ecco il messaggio di errore:

sbagliato tipo di argomento Module (Class previsto)

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 

Sono per lo più sicuro che è qualcosa di semplice per correlato al modulo e interazione con il controller, quindi non ho incluso nessun altro codice. Tuttavia, avrei dovuto trovare la soluzione ora e per favore fatemi sapere se è richiesto un codice aggiuntivo.

Grazie.

+1

Sembra corretto per me ... – Arkan

+0

forse classe Admin :: AdminController <:: ApplicationController –

risposta

0

Forse avete qualcosa definito come Admin costante?
Provate una nuova app con la stessa struttura, quindi aggiungete pezzi da quella corrente e vedete dove si rompe (suggerimento non così grande, eh?).

Io uso la stessa organizzazione per admin come si è incollato ...

0

"sbagliato tipo di argomento Module (Classe atteso)"

Questo significa che si sta definendo una 'classe', ma quel nome è già definito come un "modulo" da qualche altra parte. Cerca quello che potrebbe essere ...

3

Suggerirei di rinominare Admin::AdminController a Admin::BaseController.

0

Si può seguire il codice qui sotto, I controller sono a posto, è possibile utilizzare i percorsi che ho specificato qui.

class Admin::AdminController < ApplicationController 


class Admin::UsersController < Admin::AdminController 

Questo è lo stesso di quello che hai scritto, credo di si.

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

ho incontrato il problema inverso "sbagliato tipo di argomento di classe (modulo atteso)" e si è rivelato c'era un aiutante definito come una classe, invece di un modulo, quindi cercare per le classi che vengono inavvertitamente definiti come moduli . Come un controller definito come un modulo.

+0

Grazie mille. : P mi ha aiutato. – rewolf

0

@Russell, ho avuto quel problema avendo AdminHelper modello creato (destinato a contenere messaggi di aiuto di amministratore) :)

fare attenzione nel nominare le cose!

0

Ho riscontrato questo problema quando ho usato paperclip has_attached_file con parametri non validi.