访问Cancan的设计辅助方法等
-
28-09-2019 - |
题
这似乎是一个简单的问题,我无法缠绕我的头。
在新的Rails 3应用程序上使用设计进行身份验证和CANCAN进行授权。
我如何访问定义的方法 ApplicationController
在 Ability
Cancan提供的课程?
又名,类似的事情:
class Ability
include CanCan::Ability
def initialize(user)
user ||= User.new # Guest user.
can :create, Post if user_signed_in?
end
end
在哪里 user_signed_in?
定义在 ApplicationController
.
解决方案
这可能不是您想要的答案,但似乎您想混合不应该混合的代码问题。
访问是个好主意吗 user_signed_in?
在您的授权规则内? ...由于授权仅关注某人可以做的事情,并且不应关心某人是否经过身份验证(或没有)。
a之前的过滤器(before_filter :authenticate_user!
)在您的帖子控制器上检查您的用户身份验证是否足以实现您的目标;您的授权规则可以运行 旁边 身份验证检查,而不是与其代码混合。
这是一种分层的方法:-)
不隶属于 StackOverflow