2017-03-16 92 views
0

我知道如何限制Rails的5CanCanCan自定义控制器,不车型

与惨惨RESTful应用程序访问我的一些动作和控制器都没有REST风格。

例如我有一个带有user_report方法的report_controller。没有与此控制器/操作直接相关的模型。

class ReportController < ApplicationController 

    load_and_authorize_resource 

    def user_report 

    end 

end 

如何在我的ability.rb文件中定义一个能力来限制对此操作的访问?

回答

0

ability.rb自定义一个能力是这样的:

can :view_reports, MyClass 

在你user_report动作,手动授权对抗能力:

def user_report 
    authorize! :view_reports, MyClass 
    # ... 
end 

此外,从ReportController删除load_and_authorize_resource,因为你是直接调用authorize!

+0

但没有模型'用户'。 – almo

+0

然后使用不同的模型或类。这并不重要,因为您不是针对特定实例授权的。 –