Rails has_many通过自我独特的验证

时间:2015-01-11 19:32:44

标签: ruby-on-rails ruby ruby-on-rails-4

我有两个模型,用户和教练

一个用户可以拥有许多学生和教练

来自用户模型的代码:

  has_many :coachings, :foreign_key => :student_id
  has_many :coaches, :through => :coachings, :foreign_key => :coach_id

Coachings模型的代码:

belongs_to :coach, :class_name => 'User'
belongs_to :student, :class_name => 'User'

但这允许向db添加重复记录(一个用户可以有重复的教练或重复的学生)。如何正确验证这个?

由于

1 个答案:

答案 0 :(得分:1)

您似乎正在寻找一种方法来验证coach_idstudent_id组合的唯一性。

试试这个:

<强> coaching.rb

validates_uniqueness_of :coach_id, scope: :student_id