2017-03-16 63 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

然後使用不同的模型或類。這並不重要,因爲您不是針對特定實例授權的。 –