2014-03-28 13 views
0

我嘗試使用的before_filter的管理頁面,我有我的登錄頁面,我的儀表盤等的Rails不能贏得成功使用的before_filter用於管理

所以這是我admin_user.rb

ActiveAdmin.register AdminUser do  
index do        
column :email      
column :current_sign_in_at   
column :last_sign_in_at   
column :sign_in_count    
default_actions     
end         

filter :email      

form do |f|       
    f.inputs "Admin Details" do  
    f.input :email     
    f.input :password    
    f.input :password_confirmation 
    end        
f.actions       
end         

和在控制器我要保護的頁面,我已經把在上面這樣的:

before_filter check_if_admin 


def check_if_admin 
    if signed_in? 
    # raise 'Only admins allowed!' unless current_user.admin? 
    raise 'Only admins allowed!' 
else 
raise 'Please sign in!' 
end 
end 

所以我得到了一個錯誤:

undefined method `model_name' for NilClass:Class 

從去我的控制器的_form.html.erb ...

我怎麼能這樣做?當管理員訪問某個頁面時

謝謝!

注:我在web開發初學者,很抱歉,如果這似乎很容易,你:)

編輯

模型admin_user.rb

class AdminUser < ActiveRecord::Base 
    # Include default devise modules. Others available are: 
    # :confirmable, :lockable, :timeoutable and :omniauthable 
    devise :database_authenticatable, 
    :recoverable, :rememberable, :trackable, :validatable 

    # Setup accessible (or protected) attributes for your model 
    attr_accessible :email, :password, :password_confirmation, :remember_me 
    # attr_accessible :title, :body 
    end 
+0

你有型號admin_user.rb嗎? – Misha

+0

我編輯我的帖子發佈 – F4Ke

回答

0

試試這個方法

def check_if_admin 
    if current_admin_user_signed_in? 
    raise 'Welcome Admin' 
    else 
    raise 'Only admins allowed!' 
end 
end 
+0

如果我調用'before_filter check_if_admin'外部方法,如果我在方法中調用它,我得到一個runtimeError(管理與否)相同的結果 – F4Ke

+0

您運行rake db:爲管理員遷移和添加記錄? – Misha

+0

爲admin添加記錄?如果這是問題,我可以登錄 – F4Ke