[英]CanCanCan view only if has attribute
我使用 CanCanCan 来管理我的授权页面。
这是设置我的能力页面的方式:
class Ability
include CanCan::Ability
def initialize(user)
#return if user.nil?
if user.nil?
can :read, User
can :read, Talent, {is_major: false}
else
一个用户拥有一个天赋。 一个 Talent 有一个方法叫做:is_major。 此方法检查人才是否超过 18 岁。
我希望,未登录应用程序的用户只能在此人才是_专业的情况下阅读人才。
如何在 CanCanCan 上设置它?
这里的问题只是一个sintax:
如果我添加:
if user.nil?
can :read, User
can :read, Talent, is_major?: true
else
有用。
从is_major?
开始,您需要使用块语法定义能力? 是一种模型方法。
can :read, Talent do |talent|
talent.is_major?
end
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.