我試圖用慘慘滿足以下要求:如何根據關聯事實來限制CanCan中的記錄?
如果交易被分配到一對多的網絡,用戶可以閱讀協議,如果他/她是任何分配網絡中的一員。
如果交易未分配給任何網絡,則可以由任何註冊用戶查看,無論其網絡成員身份如何。
如果交易未分配給網絡,但交易標記爲member_only = true,則用戶可以閱讀交易,如果他/她是任何網絡的成員。如果交易未分配給網絡並且標記爲member_only = false,則任何註冊用戶都可以閱讀交易。客人(即非用戶)無法讀取任何交易
我覺得我有2-4覆蓋以下內容:
if current_user.persisted?
can :read, Deal, current_user.networks.empty? ? { member_only: false } : {}
end
但是,我不知道該如何進一步限制分配給網絡的交易。這可能與CanCan。如果是這樣,建議如何?謝謝。