Ruby on rails Rails—创建新模型所需的帮助
我想创建模型Ruby on rails Rails—创建新模型所需的帮助,ruby-on-rails,ruby-on-rails-3,associations,models,Ruby On Rails,Ruby On Rails 3,Associations,Models,我想创建模型消息,以便人员可以在组#show页面中发布新消息。但为此,她/他必须来自相关的组,或所有者,或拥有该组的组成员(成为成员) 模型消息的关联如何?类消息
消息
,以便人员
可以在组#show
页面中发布新消息。但为此,她/他必须来自相关的组
,或所有者,或拥有该组的组成员(成为成员)
模型消息的关联如何?类消息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
属于某人
属于:组
验证:具有组权限
def具有组权限
除非self.person.owned_groups.include?(self.group)| self.person.groups.include?(self.group)
self.errors.add(:base,“您没有向该组添加邮件的权限。”
结束
结束
结束
class Message < ActiveRecord::Base
belongs_to :person
belongs_to :group
validate :has_group_permission
def has_group_permission
unless self.person.owned_groups.include?(self.group) || self.person.groups.include?(self.group)
self.errors.add(:base, "you don't have permission to add a message to this group."
end
end
end