如何覆盖CanCanCan中的默认方法

问题描述 投票:0回答:1

CanCanCan对应用程序有两个假设:

1 *定义权限的Ability类。

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

就我而言,我有两个模型对象和主题(我可以创建,更新,销毁),它们都使用CRUD操作。

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

ruby-on-rails authorization cancancan
1个回答
0
投票

对新的辅助方法使用别名:

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

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
© www.soinside.com 2019 - 2024. All rights reserved.