RubyonRailsでの関連付けについて質問があります。アプリケーションには、プロジェクト、ユーザー、ロール、およびグループがあります。プロジェクトはユーザーのいるグループに属しています。ユーザーは多くの異なるグループに属することができますが、そのグループ内で特定の役割を1つだけ持つことができます。例えば:
あるグループではユーザーはプロジェクトの所有者ですが、別のグループでは彼はライターです。
Railsの組み込み関数を使用してこれを実装するための最良の方法は何ですか?
ありがとう
RubyonRailsでの関連付けについて質問があります。アプリケーションには、プロジェクト、ユーザー、ロール、およびグループがあります。プロジェクトはユーザーのいるグループに属しています。ユーザーは多くの異なるグループに属することができますが、そのグループ内で特定の役割を1つだけ持つことができます。例えば:
あるグループではユーザーはプロジェクトの所有者ですが、別のグループでは彼はライターです。
Railsの組み込み関数を使用してこれを実装するための最良の方法は何ですか?
ありがとう
以下は、要件を満たすモデルの非常に簡単なセットです。
class User < ActiveRecord::Base
has_many :group_memberships
has_many :groups, :through => :group_memberships
end
class GroupMembership < ActiveRecord::Base
belongs_to :user
belongs_to :role
belongs_to :group
end
class Role < ActiveRecord::Base
has_many :group_memberships
end
class Group < ActiveRecord::Base
has_many :group_memberships
has_many :users, :through > :group_memberships
end
基本的に、ユーザー、グループ、およびロール ID を持つ結合テーブルがあります。移行は質問者の演習として残します