ユーザーが特定の役割でログインしている場合、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
) は、すべての購入者からのすべての製品を表示できる必要があります (管理者などと同様)。買い手は、価格や、一部の製品のその他の属性などを見ることができません。
どうすればそれをすべて達成できますか?