LoginSignup
1
1

More than 5 years have passed since last update.

after_commitはdestroy時にも走る

Posted at

当たり前の話ですが、after_commitはすべてのcommit後に走るのでもちろんdestroyの時も走ります。

ここが考慮漏れしており以下のエラーが出ました。

RuntimeError: Can't modify frozen hash

これはdestroyで削除済みのhashに対してafter_commitで操作しようとしたために起こりました。

以下のように対処しました。

after_commit :set_user_id, on: :create

on: :createをつけることによりcreate時のみしか動かなくしました。これで解決です。

参考

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1