繁体   English   中英

CanCanCan 仅在具有属性时才能查看

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM