0

アプリケーションにテーブル ユーザーとトピックがあります。トピックを作成したユーザーはそのトピックのすべての権限を持ち、このユーザーは他のユーザーにアクセスまたは編集する権限を付与できます。この構造体をcancanで実装するにはどうすればよいですか。私は何かが欲しい

can? :edit, @topic

can :edit, Topic do |topic|
//get object @topic i pass above, and check current user has ability to edit this topic
end

topic_id と user_id を持つ新しいテーブル名 topic_share を作成することを考えています。トピックとユーザーの間の多対多の関係。cancanで実装する方法がわかりません。

4

2 に答える 2

0

トピック テーブルになんらかの種類がある場合creator_id、cancan で次の操作を実行できます (能力がユーザー レコードを中心に展開され、creator_id がトピックを作成したユーザーの ID であり、トピックが属するユーザーの ID であると仮定します)。

can :edit, Topic, creator_id: user.id
于 2013-03-05T11:11:40.717 に答える
0

これが直接的な答えではないことは承知していますが、私が作成したこの宝石をご覧になることをお勧めします: https://github.com/intrepidd/rails-canhaz

任意のモデル間で権限を簡単に作成できます。

于 2013-03-05T11:19:13.517 に答える