看到这篇文章,它说数据库处理的引用完整性根本不是 Rails 方式。
但是考虑一下:
class User < ActiveRecord::Base
belongs_to :department
end
class Department < ActiveRecord::Base
has_many :users
end
#User Model
id: integer, name: string,department_id: integer
#Department Model
id: integer, name: string
在这里我需要创建一个新用户并执行以下规则
- 用户应该被分配到一个部门
- 应该
users.department_id
匹配departments.id
- 如果
users.department_id
与 不匹配departments.id
,则不应创建记录并引发错误。
现在,我如何以 Rails 方式完成此任务?或者通过在迁移中删除原始 SQL 添加外键是唯一的方法?