如果用户以特定角色登录vendor
- 他们应该只看到他们在商店中创建的项目。他们应该看不到其他供应商的产品。
所以我试图在我的授权中这样做(使用 Devise、CanCan、Rolify)。
我试过这个:
user ||= User.new # guest user (not logged in)
if user.has_role? :vendor
can :dashboard
can :manage, [Product, Vendor], :vendor_id => user.id
can :view, [Product], :vendor_id => user.id
end
但是....没有太多运气...我错过了什么?
编辑 1
我知道我可以限制控制器中的产品,例如:
@product = current_user.products
但这不是我要找的。在这种情况下,供应商(即具有角色的用户:vendor
)应该只能看到他们添加到商店的产品,而不能看到其他供应商添加的产品。但是,买家(即具有角色的用户:buyer
)应该能够看到所有买家的所有产品(管理员/等)。买家将无法看到某些产品的价格和其他属性等。
我怎样才能实现所有这些?