验证关联的对象是否具有相同的父

时间:2016-11-30 08:59:12

标签: ruby-on-rails ruby activerecord

我正在创造一种像这样的三角形结构:

class Company < ActiveRecord::Base
  has_many :departments
  has_many :employees
end

class Department < ActiveRecord::Base
  belongs_to :company
  has_many :employees
end

class Employee < ActiveRecord::Base
  belongs_to :company
  belongs_to :department # optional, employee can belong only to a company
end

现在,在创建员工时,最好的方法是确保只分配与我正在创建的员工属于同一公司的部门吗?

company_id从嵌套资源路由自动分配,department_id来自params。我想我可以创建一个自定义方法来验证这一点,但我想知道是否有某种开箱即用的方式(例如,仅使用关联)来执行此操作。

例如,我想避免这样的事情:

CompA ---- DepA
 \
  \_ !EmpA! _
             \
CompB ---- DepB ---- EmpC
  \___________________/
   \        
    \_______ EmpD

0 个答案:

没有答案