首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在CanCanCan中重写默认方法

如何在CanCanCan中重写默认方法
EN

Stack Overflow用户
提问于 2019-11-09 19:53:41
回答 1查看 209关注 0票数 1

CanCanCan对应用程序做了两个假设:

1*定义权限的能力类。

2*控制器中返回当前用户模型的current_user方法。

在我的例子中,我有两个模型对象和主题(我可以创建、更新和销毁)它们都使用CRUD操作。

现在,我希望使用CanCanCan库授权限制对此对象的访问。我知道CanCanCan希望控制器中存在一个current_user方法,并设置一些身份验证(比如Devise)。如何覆盖期望current_user并将其传递给current_subject的默认方法,因为该方法应该具有对对象的访问权限。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-11-17 20:25:44

使用新助手方法的别名:

只需将控制器中的current_user助手方法别名为您正在使用的实际助手方法:

代码语言:javascript
复制
class ApplicationController < ActionController::Base
  alias_method :current_user, :current_subject # or whatever your helper method is called - this is untested btw
end

# Source: https://github.com/CanCanCommunity/cancancan/wiki/changing-defaults
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58782977

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档