簡體   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