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