具有一种关联类型的Rails模型自定义验证



我有一个具有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

如果顾问和团队都在场,将给对象添加一个错误。

最新更新