我会尽力解释我的困境。
我有2个型号 用户和设备
设备有一个类型列。例如,它可以是平板电脑或智能手机。
然后我有另一个模型所有权
此模型属于用户和设备,因此表中的条目会将用户与表示该用户拥有该设备的设备匹配。
我需要在主要开始的所有权模型上设置一些验证。
那么我将如何对最后一部分进行验证呢?我无法将client_id表设置为唯一,因为它们将为不同类型的设备提供多个条目。但我希望他们每种类型的设备只有一行。
我希望这是有道理的。如果您需要更多详细信息,请与我们联系。我很感激任何见解!
谢谢!
答案 0 :(得分:1)
validates :device_id, uniqueness: true
validate :device_type_unique?
def device_type_unique?
if Ownership.includes(:device).where('devices.type = ? AND ownerships.user_id = ?', self.device.type, self.user_id)
errors.add(:user_id, "Can only own one device type.")
end
end