2013-04-17 15 views
7

你好,我有「未初始化不斷DashboardController」的問題,當我打開我的網站與本地主機:3000。它顯示我上面的錯誤。它不允許我進入用戶端。未初始化的常數DashboardController:accesing場地面積時接受管理方

我有很多的模型,管理以及用戶,所以我需要爲這個錯誤的解決方案。

ý它如此....和我有限定根:至>「家/索引」作爲我的根文件所以每當我在我的瀏覽器本地主機寫失敗加載。

我已經爲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 


新問題及其答案:


如果您收到此錯誤,則強制執行此操作。

處理由Admin :: DashboardController#指數HTML完成401 未經授權在1ms內

出現這種情況,當你嘗試打開本地主機:3000/admin和重定向到本地主機:3000/usres/sign_in

然後你可以添加這三行,所以在config/initializers/active_admin.rb中複製這三行並粘貼到文件底部(在ActiveAdmin.setup do | config | .... end之後)。

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

其實我有

before_action:的authenticate_user!

在我application_controller。

只需打開ActiveAdmin :: BaseController並把skip_before_filter在那裏。

+8

得到了解決方案..... :)每當你發現這種類型的問題檢查您的routes.rb文件,可能有兩個根:to =>'控制器#操作'爲管理員,以及用戶,所以它可能b衝突。所以在你的ROUTES.RB文件做到這一點,把這條線根:到=>'控制器#動作'...之前ActiveAdmin.routes(自我)...重新啓動您的服務器和運行.... :) – SSR

+0

謝謝,這解決了這個問題。 – rmagnum2002

+0

謝謝!爲我工作呢! –

回答

2

在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) 

如果有錯誤uninitialized constant DashboardController,只是刪除一切app/helpers/admin/


另一種方法是隻是一個is_admin列添加到您的用戶表。在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 

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

,和本辦法,你不需要admin_user表:

然後,在initializers/active_admin.rb添加此。只需將用戶的is_admin從0更改爲1即可成爲管理員。