Рельсы, проверяющие уникальность полиморфной ассоциации


1
validates :member_id, :uniqueness => { :scope => [:member_type, :group_id,:group_type] }

При этом вы также можете сделать присутствие члена и группы как обязательными, так как значения nil приведут к дублированию и не подтвердят валидность уникальности

validates :member_type, :member_id, :presence => true
validates :group_type, :group_id, :presence => true

0

Для этого нет встроенного, поэтому я сделал следующее:

validate :member_is_unique_for_group

def member_is_unique_for_group
  if group.members.include? member
    errors.add(:member, 'already exists for this group')
  end
end
Рубин на рельсах,

ruby-on-rails,

2

Ответов: 2


1
validates :member_id, :uniqueness => { :scope => [:member_type, :group_id,:group_type] }

При этом вы также можете сделать присутствие члена и группы как обязательными, так как значения nil приведут к дублированию и не подтвердят валидность уникальности

validates :member_type, :member_id, :presence => true
validates :group_type, :group_id, :presence => true

0

Для этого нет встроенного, поэтому я сделал следующее:

validate :member_is_unique_for_group

def member_is_unique_for_group
  if group.members.include? member
    errors.add(:member, 'already exists for this group')
  end
end
Рубин на рельсах,
Похожие вопросы