この投稿に出くわし、DBによって処理される参照整合性は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
、レコードを作成してエラーを発生させないでください。
さて、どうすればこれをレールの方法で達成できますか?または、移行時に生のSQLをドロップして外部キーを追加することが唯一の方法ですか?