2013-08-25 31 views

回答

1

您可以用行動爲變量初始化能力類的實例方法:

#models/ability.rb 

class Ability 
    include CanCan::Ability 

    def initialize(user, action) 

    can action.to_sym, Obj do |x| 
     #do something with your action (and user?) 
    end 

    end 

end 

現在,您可以初始化新的能力,使電流動作將其:

#application_controller.rb 

def current_ability 
    @current_ability ||= Ability.new(current_user, params[:action]) 
end 

和應用使用操作名稱存儲任何規則默認參數:action