我有以下几点:
class Membership < ApplicationRecord
belongs_to :member, polymorphic: true
belongs_to :group, polymorphic: true
end
如您所见,我的 Membership 模型是双重多态的。我想验证:member
scoped by的唯一性:group
。
我希望以下方法可行:
validates :member, uniqueness: { scope: :group }
但这会导致错误:
NameError: uninitialized constant Membership::Member
是否有 Rails 方法可以做到这一点,还是我需要为它编写自定义方法?
没有内置的,所以我做了以下事情:
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
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句