0

現在、(Roles_Users) テーブルを使用してロールを持つユーザーを作成できる Devise & CanCan を使用しています。

それはいいことですが、私が欲しいのは、アプリにプロジェクトを持ち、ユーザーが (管理者、ビューアーなど) IE のような役割を持つ可能性のあるプロジェクトごとに、役割はユーザーに割り当てられるのではなく、どのプロジェクトに基づいてユーザーに割り当てられるかです。のメンバーです。

例:

  • ユーザー X は、管理者ロールを持つプロジェクト A に属しています
  • ユーザー X は、ゲスト ロールを持つプロジェクト B に属しています
  • ユーザー Y はオブザーバー ロールを持つプロジェクト B に属しています

これにはどのようなモデルが適していますか?

モデル

ユーザー has_many: プロジェクト プロジェクト ? 役割?

Users_Roles_Projects (user_id、project_id、role_id)

どう思いますか?私は初心者であり、あなたの素晴らしい経験豊富な人々からの理解と考えを利用することができます. ありがとう!

4

1 に答える 1

1

has_many:throughを調べる必要があります。このRailscastは、あなたを稼働させるはずです:http: //railscasts.com/episodes/47-two-many-to-many

たとえば、メンバーシップを通じてUser has_many Projectsを作成できます(より適切な名前を思い付くことができると確信しています!)

ユーザーモデルには標準のユーザー詳細が含まれ、プロジェクトモデルにはプロジェクトの詳細が含まれ、おそらくどこかにいくつかのロールモデルがあります(私はあなたが言及したライブラリのどちらも使用していないので、それらがどのように機能するかについてコメントすることはできません)。重要なのはメンバーシップモデルです。

メンバーシップモデルには、userID、projectID、およびroleIDが含まれます。データベースには、特定のuserIDとprojectIDのペアのインスタンスが1つだけ存在する必要があるため、このペアと一緒にroleIDを保存することで、指定したプロジェクトのそのユーザーにロールを割り当てることができます。

于 2010-09-14T22:12:55.827 に答える