Rails действует_as_soft_deletable с has_and_belongs_to_many - PullRequest
1 голос
/ 10 ноября 2011

У меня проблема с плагином act_as_soft_deletable и отношением has_and_belongs_to_many.

У меня есть модель "Место", которая имеет несколько категорий (например, ресторан, гостиница и т. Д.).Это означает, что в базе данных создается таблица "place_categories", содержащая два столбца "place" и "category".

Когда я уничтожаю место, оно помещается в таблицу "Удаленные_позиции" с помощью activ_as_soft_deletable.Затем я пытаюсь восстановить его, и приложение вылетает, потому что место не может существовать без категорий.Записи в "местах_категорий", в которых хранятся категории, к которым принадлежало место, удаляются при удалении места.

Как я могу убедиться, что "места_категории" не удаляют отношения, когда место перемещается в "таблица удаленных_позиций?

1 Ответ

1 голос
/ 10 ноября 2011

Поскольку нет возможности явно сохранить эти записи - вы можете сделать что-нибудь сумасшедшее и глупое и просто переопределить опцию delete_sql на пустую строку или что-то такое, что не произойдет с ошибкой на стороне базы данных, например:

class Place
    has_and_belongs_to_many :categories, :delete_sql => "select true"
end

Это не проверено ! Просто идея.

Вы можете прочитать обо всех доступных опциях здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...