🖥

#Rails で has_many の association を delete_all してもレコードが削除されないのだが?

2019/11/08に公開

model

class User < ApplicationRecord
  has_many :books
end
class Book < ApplicationRecord
  belongs_to :user
end

挙動のイメージ

Book.size 
# 3
user.books.size
# 3
user.books.delete_all

user.books
# []

user.books.size
# 0
Book.size 
# 3

理由

レコードは削除されず association の id が nil になってるっぽい

Book.first
=> [#<Book:0x00005604c5560390
  user_id: 1]

user.books.delete_all

Book.first
=> [#<Book:0x00005604c5560390
  user_id: nil]

Original by Github issue

https://github.com/YumaInaura/YumaInaura/issues/2679

チャットメンバー募集

何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。

https://line.me/ti/g2/eEPltQ6Tzh3pYAZV8JXKZqc7PJ6L0rpm573dcQ

Twitter

https://twitter.com/YumaInaura

公開日時

2019-11-08

Discussion