2013-04-17 12 views
7

ciao ho un problema con "costante non inizializzato DashboardController" quando apro il mio sito con localhost: 3000. mi mostra sopra l'errore. non mi sta permettendo di entrare nel lato utente.costante non inizializzata DashboardController per localhost: quando si accede all'area del sito accetta admin lato

Ho un sacco di modelli per gli utenti admin e quindi ho bisogno di una soluzione per questo errore.

y it so .... e ho definito root: to => 'home/index' come file radice quindi ogni volta che scrivo localhost nel mio browser non riesce a caricare.

ho installato devise per utente e active-admin per admin.

// for devise user session 
controller :sessions do 
    get 'login' => :new 
    post 'login' => :create 
    delete 'logout' => :destroy 
end 

root :to => 'home#activity_list' //for localroot 


Nuova domanda e la sua risposta:


Se hai trovato questo errore poi jus esegue questa operazione.

lavorazione da Admin :: DashboardController # indice in formato HTML Completato 401 non autorizzata in 1ms

Questo si verifica quando si tenta di aprire localhost: 3000/admin e reindirizza a localhost: 3000/usres/sign_in

quindi è possibile aggiungere queste tre righe, quindi copiare queste tre righe e incollarle nella parte inferiore del file (dopo ActiveAdmin.setup do | config | .... end) in config/initializers/active_admin.rb.

ActiveAdmin::BaseController.class_eval do 
    skip_before_filter :authenticate_user! 
end  

realtà ho

before_action: authenticate_user!

nel mio application_controller.

Basta aprire ActiveAdmin :: BaseController e inserire qui skip_before_filter.

+8

ha ottenuto la soluzione ..... :) ogni volta che hai trovato questo tipo di problema controlla il tuo file routes.rb, potrebbe esserci b due root: to => 'controller # action' per admin e anche utente così potrebbe b scontro. quindi NEL TUO ROUTES.RB FILE FAI IL TUO, METTA QUESTA LINEA root: to => 'controller # action' ... PRIMA di ActiveAdmin.routes (self) ... RIAVVIARE IL SERVER E FUNZIONA .... :) – SSR

+0

grazie, questo ha risolto il problema. – rmagnum2002

+0

grazie! ha funzionato anche per me! –

risposta

2

In routes.rb:

root :to => 'frontpage#index' # MUST be before ActiveAdmin (as SSR said) 

    devise_scope :users do # Must also be before ActiveAdmin 
    root :to => "frontpage#index" 
    end 

    namespace :admin do 
    root to: 'users#index' # if you want to be on user by default on the admin 
    #resources :dashboard <= Remove this line if you have it 
    end 

    devise_for :admin_users, ActiveAdmin::Devise.config 
    ActiveAdmin.routes(self) 
    devise_for :users, :controllers => {:omniauth_callbacks => 'omniauth_callbacks'} 
    ActiveAdmin.routes(self) 

Se avete l'errore uninitialized constant DashboardController, è sufficiente rimuovere tutto in app/helpers/admin/


Un altro metodo è quello di aggiungere solo una colonna is_admin al vostro tavolo dell'utente.

Quindi, aggiungere questo in initializers/active_admin.rb:

config.authentication_method = :authenticate_admin_user! 
config.current_user_method = :current_admin_user 

E questo a application_controller.rb

def authenticate_admin_user! 
    if !current_user.is_admin 
    flash[:error] = "You must be admin to access this page." 
    redirect_to root_path 
    return 
    end 

end 

In questo modo, non è necessario il tavolo utente_amministratore. Basta cambiare is_admin da 0 a 1 affinché un utente possa diventare amministratore.

Problemi correlati