0

次のモデルのアプリがあります:People、Projects、ProjectsAdminLists。

人とプロジェクトの間にはHABTMの関連性があります。各プロジェクトには1つのProjectAdminsListがあり、それぞれに多くの人がいる可能性があります。

各プロジェクトに属する人は他の人をプロジェクトに追加できますが、この関連付けの削除をProjectAdminsListに属する人に制限したいと思います。ビューでそれを制限するのは簡単ですが、コントローラーでそれを行うための最良の方法は何でしょうか?これに関する一般的なガイダンスを探しています。

4

1 に答える 1

0

ある種の認証システムが必要です。Ryan Bates (RailsCast 担当者) によって作成された CanCan gem を参照することをお勧めします。まずAuthorization with CanCan RailsCast を見てから、非常に優れたドキュメントを参照してください。

ここに概要があります:

  • current_user現在ログインしているユーザーを特定する方法が必要なだけです
  • 認可ルールは 1 つのファイル ( ability.rb )に記述します。
  • ビューレイヤーでメソッドを使用してcan?、ユーザーが何かに対して何らかの操作を実行できるかどうかを確認します
  • コントロールを呼び出しload_and_authorize_resourceて、CanCan に Ability.rb ファイルに基づいて自動的に承認をチェックさせます。

もちろん、ドキュメンテーションが本当に優れていると言ったように、私は表面をなぞっただけです。

于 2012-04-25T11:44:05.110 に答える