class Person
has_many :owned_groups, :class_name => "Group", :foreign_key => :owner_id
has_many :owned_group_memberships, :through => :owned_groups,
:source => :group_memberships
has_many :group_memberships, :foreign_key => "member_id"
has_many :groups, :through => :group_memberships
end
class GroupMembership
belongs_to :member, :class_name => 'Person'
belongs_to :group
end
class Group
belongs_to :owner, :class_name => "Person"
has_many :group_memberships
has_many :members, :through => :group_memberships
end
Я хочу создать модель Message
, чтобы Person
мог опубликовать новое сообщение на странице group#show
. Но для этого она / он должен быть из рассматриваемого Group
или его владельца, или иметь group_membership (быть участником) из этой группы.
Какими будут ассоциации модели Message
?