2

カテゴリを持つ Rails 3 アプリケーションがあります。カテゴリは、カテゴリ所有者の役割を持つユーザーが管理できます。ただし、カテゴリ所有者は、自分が所有するカテゴリにのみアクセスでき、他のカテゴリにはアクセスできない必要があります。CanCan を使用して管理機能をロックダウンできますが、特定のカテゴリ自体を制限する必要があります。

4

1 に答える 1

5

2 つの方法のいずれかでそれを行うことができます。

Ability属性のハッシュを指定して、クラスでのアクセスを制限できます。

can :manage, Category, :user_id => user.id

または、ブロックを使用できます。

can :manage, Category do |c|
  c && c.user_id == user.id
end

これらはどちらも、チェックuser_id対象のカテゴリの属性が、チェック対象のユーザーと一致するかどうかをチェックします。

これらについては、CanCan ドキュメントの「ハッシュによるアビリティの定義」および「ブロックによるアビリティの定義」でそれぞれ説明されています。

于 2010-10-05T16:14:57.117 に答える