2011-04-13 30 views
1

我给我的宁静资源添加了新动作,我如何使用cancan对它进行授权。cancan新动作

页控制器:

load_and_authorize_resource 


def index  
end 

def show 
end 

def new 
end 

def create 
end 

def edit 
end 

def update 
end 

def destroy 
end 

def mynewaction 
end 

能力模型:

class Ability 
    include CanCan::Ability 

    def initialize(user) 
     user ||= User.new 
     can :create, Page 
     can :mynewmethod, Page #does it work? 

    end 
+0

是的,它的工作原理。你也可以把方法传递给数组,如 can [:create,:mynewmethod],Page – 2011-04-13 22:24:36

+0

你会接受答案吗? – 2011-11-27 23:12:16

回答

4

是的,我相信它适用于比CRUD方法其他的事情,虽然这只是从看一些文件,检查出​​和actual documentation by ryanb here

您应该特别注意第一个链接,它说load_and_authorize_resource将应用于控制器中的所有方法,即使是通常的CRUD以外的方法。

我认为最简单的方法就是测试一下,它在启动时是否正确授权?没有比尝试更好的了。

+0

保罗从它的工作角度来看是正确的,并且在那里进行测试以确认。 – 2011-04-13 22:26:36