سؤال

ولدي سؤال بخصوص الجمعيات في روبي على القضبان. في التطبيق هناك مشاريع، والمستخدمين، والأدوار والمجموعات. ينتمي المشروع إلى مجموعة مع المستخدمين، يمكن للمستخدم ينتمي إلى العديد من مجموعات مختلفة ولكن يمكن أن يكون إلا دور واحد محدد ضمن تلك المجموعة. على سبيل المثال:

في مجموعة واحدة المستخدم هو صاحب المشروع، ولكن في مجموعة أخرى هو الكاتب.

ما هو أفضل وسيلة لتنفيذ هذه باستخدام المدمج في وظائف في القضبان؟

والشكر

هل كانت مفيدة؟

المحلول

وهنا هو مجموعة سريعة جدا من النماذج التي يجب أن تفي الاحتياجات الخاصة بك:

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

وأساسا هناك الانضمام جدول يحتوي على المستخدم، مجموعة ومعرف دورا في ذلك. سأترك الهجرة باعتبارها ممارسة للالسائل

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top