我正在尝试使用 CanCan 满足以下要求:
如果一个交易被分配给 1-many 网络,如果他/她是任何分配网络的成员,则用户可以阅读该交易。
如果交易未分配给任何网络,则任何注册用户都可以查看该交易,无论其网络成员身份如何。
如果交易未分配给网络,但交易标记为 member_only = true,则用户可以在他/她是任何网络的成员时阅读该交易。如果交易未分配给网络并且标记为 member_only = false,则任何注册用户都可以阅读该交易。客人(即非用户)无法阅读任何优惠
我想我有 2-4 个涵盖以下内容:
if current_user.persisted?
can :read, Deal, current_user.networks.empty? ? { member_only: false } : {}
end
但是,我不确定如何进一步限制分配给网络的交易。CanCan 有可能吗?如果是这样,建议如何?谢谢。