2011-05-17 77 views
1

在application_controller我有以下方法:的before_filter檢查多個角色

def authorized_for_roles(*roles) 
    roles.each{|role_name| return true if current_user.has_role?(role_name)} 
    false 
    end 

在我的控制器之一,我有

private 

    def authorize_administration 
    authorized_for_roles :administrator 
    end 

我在我的before_filter調用authorize_administration。目前越來越未定義方法的角色」的錯誤。可有人告訴我,我已經錯了?該CURRENT_USER有效/定義,角色可以進行檢查。

感謝

+0

您可以包含'has_role?'嗎?方法來自用戶模型? – 2011-05-17 04:33:49

回答

0

真的是錯誤的authorized_for_roles def或用戶模型?您是否定義了用戶的has_many:roles?

+0

用戶has_one:角色,但是我在檢查多個角色 - 例如我可能會調用authorized_for_roles:administrator,:moderator,因此我可以授權具有這些角色中的任一角色的用戶控制器動作 – Chip 2011-05-17 03:44:27

+0

好吧,我剛回去,似乎我的用戶belongs_to:角色 – Chip 2011-05-17 03:58:28