在我的项目中,我有一个 Athlete 模型(继承了 User 父模型),它 has_many :coach_contacts。在 CoachContact 模型中,我需要它来验证每个运动员的每个运动 ID 的 contact_type 属性的唯一性。
例如,运动员可以拥有的教练联系人的最大数量是无限的(假设存在无限数量的不同运动),但运动员在每项运动中可以拥有的教练联系人的最大数量是 2。不仅如此,它们还必须是不同的类型。教练联系人有两种类型,“学校教练”和“俱乐部教练”,对于拥有这些教练联系人的运动员来说,同一运动中不能有两个。所以这里是 Coach Contact 模型:
class CoachContact < ActiveRecord::Base
belongs_to :athlete
validates_presence_of :name, :email, :sport_id, :athlete_id, :contact_type
end
这是一个可能的场景的示例视觉效果应该如何工作:
Athlete
->Football
1. School coach
2. Club coach
->Baseball
1. School coach
->Basketball
2. Club coach
但是,它不可能是这样的:
Athlete
->Football
1. Club coach
2. Club coach
->Baseball
1. School coach
->Basketball
2. Club coach
那么我应该如何在 Coach Contact 模型中验证这一点?
谢谢!