Задать вопрос
ertaquo
@ertaquo

Удаление записей с отношением has_and_belongs_to_many?

Доброго времени суток.

Есть две модели — Notes и Groups. Они связаны между собой отношением has_and_belongs_to_many. То бишь в одной группе может быть много заметок, а одна заметка может входить в несколько групп.

Собстна, вопрос: можно ли как-то по-простому удалить все заметки, которые входят только в одну определенную группу?
  • Вопрос задан
  • 2902 просмотра
Подписаться 2 Оценить Комментировать
Решения вопроса 1
No_Time
@No_Time
Ну вроде как через HABTM это так просто не сделать. Точнее вообще не надо через него это делать. Тут просто вопрос идеологии — HABTM не поддерживает dependent: :destroy, он изначально проектировался так, чтобы не удалять какие-либо данные внутри самих коллекций, а удалять только связи между ними. Лучше сделайте связи через has_many through: с dependent: :destroy и оберните каждое удаление в catch блок. Возможно не самое элегантное решение, но работать будет) Либо же можно написать свой скоуп в котором уже осуществлять проверку есть ли данная заметка где-либо еще кроме как в этой группе.

PS пардон за сумбурное объяснение, надеюсь смысл донес. Если не понятно, ближе к вечеру смогу пример кода привести.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@himik
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы