1
使用devise,我有一個用戶模型。我沒有用戶控制器。CanCan +爲設計用戶模型設計
要使用慘慘我需要在我的控制器
我在哪裏添加此上方做(下),所以我可以有用戶權限模型給出我沒有用戶控制器?
感謝
使用devise,我有一個用戶模型。我沒有用戶控制器。CanCan +爲設計用戶模型設計
要使用慘慘我需要在我的控制器
我在哪裏添加此上方做(下),所以我可以有用戶權限模型給出我沒有用戶控制器?
感謝
您可以在代碼添加到您需要驗證任何控制器,你並不需要一個UsersController
before_filter :authenticate_user!
這一行需要與色器件簽訂一個有效的用戶,因此,如果您嘗試與此的before_filter訪問控制器沒有被記錄,你會用色器件被重定向到sign_in_path
load_and_authorize_resource # CanCan
這一行將填充實例變量爲默認值(如果尚未設置),然後使用Ability
類檢查您的權限,因此假設您有一個ArticleController
它將在幕後執行以下操作(實際代碼基於當前動作)
# for the show action
@article = Article.find(params[:id])
raise CanCan::AccessDenied unless can(:read, @article)
的can(:read, @article)
語句是慘慘圖書館的壁爐,它會返回基於你的能力類的布爾值。可以閱讀更多關於它here
如果你的整個應用程序要求身份驗證可以在before_filter :authenticate_user!
線只需添加到ApplicationController
正確的,但我在哪裏可以設置用戶可以使用慘慘不是密碼修改有信息,但。 – AnApprentice
因爲'load_and_authorize_resource'中定義的默認規則不好。最簡單的方法是使用[ActiveRecord類的attr_accessible或attr_protected宏](http://api.rubyonrails.org/classes/ActiveModel/MassAssignmentSecurity/ClassMethods.html)並使用批量分配更新用戶屬性。不需要CanCan來完成這樣的任務。對於其他使用能力類閱讀[我的上一個鏈接](https://github.com/ryanb/cancan/wiki/Defining-Abilities) – Fabio
您可以創建自定義的能力(例如'can?:edit,:password') CanCan並根據需要在應用程序中檢查它們。 –