#ruby-on-rails #activerecord
#ruby-on-rails #activerecord
Вопрос:
Предполагая следующие модели:
class Thing
has_many :whats
end
class What
belongs_to :thing
end
Имея конкретный Thing
объект, я хочу отделить все whats
от него, но я не хочу удалять / уничтожать whats
. Мне просто нужно What.thing = null
.
Ответ №1:
Простым решением в терминале было бы запустить консоль, просмотреть все Whats
и обновить thing_id
до nil
rails c
What.all.each do |what| what.update(thing_id: nil) end
Комментарии:
1. Мне нужно сделать это как часть процесса, но это дало мне то, что мне было нужно. Спасибо!
Ответ №2:
Более эффективным было бы сделать:
What.joins(:thing).where(things: @thing).destroy_all
или
What.where(thing_id: @thing.id).destroy_all