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并根据需要在应用程序中检查它们。 –