Автоматически удалять связанные записи, если они отсутствуют в параметрах обновления - PullRequest
0 голосов
/ 22 апреля 2019

Мы используем Rails 5.2.2.1 в качестве API с Vue для внешнего интерфейса.

A Post has_many :tags.A Post также accepts_nested_attributes_for :tags, allow_destroy: true.

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

# A Post has currently tags with ID 1, 2, and 3.
# This (pseudo) update payload is sent
{
  tags_attributes: [
    {
      id: 1,
      name: 'Tech'
    },
    {
      id: 3,
      name: 'Sports'
    },
    {
      id: nil,
      name: 'Science'
    }
  ]
}

# The post's tag with an ID of 2 is not present in the update payload, so it should be automatically removed
# Since we're also passing up a new tag without an ID, this tag should be created

У меня есть решение, включающее _destroy: '1', но было бы предпочтительно, чтобы теги автоматически помечались для уничтожения на основе их присутствия в полезной нагрузке обновления.

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