我有一个具有has_and_belongs_to_many
关联的模型User。
app/模型/user.rb
has_and_belongs_to_many :advisors, dependent: :destroy
has_and_belongs_to_many :teams, dependent: :destroy
我希望用户有顾问协会或者有团队。所以想在模型级添加验证,但不明白该怎么做。
您可以使用自定义验证方法https://guides.rubyonrails.org/active_record_validations.html#custom-methods
validate :only_one_association_type
private
def only_one_association_type
errors.add(:base, "can't have both types of associations") if advisors.any? && teams.any?
end
如果顾问和团队都在场,将给对象添加一个错误。