1. ホーム
  2. ruby-on-rails

[解決済み] Railsです。railsでdependent::destroyを使うには?

2022-03-15 03:48:54

質問

以下のような2つのモデルがあります。

class EmpGroup < ActiveRecord::Base
  belongs_to :user
  has_many :emp_group_members, dependent: :destroy
end

そして

class EmpGroupMember < ActiveRecord::Base
  belongs_to :emp_group
  belongs_to :user
end

今問題になっているのは、グループを破壊しようとすると、以下のようなエラーが発生することです。

PG::ForeignKeyViolation: ERROR:  update or delete on table "emp_groups" violates foreign key constraint "fk_rails_bd68440021" on table "emp_group_members"
DETAIL:  Key (id)=(1) is still referenced from table "emp_group_members".

足りないものは?

解決方法は?

カスケード削除を EmpGroup モデルを使用します。

class EmpGroup < ActiveRecord::Base
   has_many :emp_group_members, dependent: :delete_all
end

または

を呼び出していませんか? delete メソッドを呼び出す必要があります。 destroy の代わりに 使用方法 .destroy