Удаление отношений не проверяется проверенным драгоценным камнем

Я использую Ассоциированный аудит на has_many through связь с проверенной жемчужиной Коллективной идеи. я вижу create ревизии для through модель добавляется, но я не вижу никаких проверок, когда это отношение удалено.

Вот мои 3 модели. Post может быть в нескольких Categories,

приложение / модели / post.rb

class Post < ActiveRecord::Base
  audited
  has_associated_audits

  has_many :categorizations, dependent: :destroy
  has_many :categories, through: :categorizations
end

приложение / модели / category.rb

class Category < ActiveRecord::Base
  audited
  has_associated_audits

  has_many :categorizations, dependent: :destroy
  has_many :posts, through: :categorizations
end

приложение / модели / categorization.rb

class Categorization < ActiveRecord::Base
  audited
  audited associated_with: :post
  audited associated_with: :category

  belongs_to :category
  belongs_to :post
end

мой Post Форма имеет кучу флажков для категоризации:

<%= f.association :categories, as: :check_boxes, collection: Category.order(:name), label_method: :name, value_method: :id, label: false %>
  • Когда я редактирую существующий Post и установите флажок для Category Я вижу новую запись аудита с create значение в поле действия аудита.
  • Когда я редактирую существующий Post и снимите флажок для Category Я не вижу новую запись аудита.
  • Я вижу destroy ревизии для обоих Post и Categorization поля auditable_type, когда я удаляю Post Таким образом, этот аспект работает хорошо.

    1. Может ли проверяемый отследить эти отмены? Если так, то как?
    2. Есть ли что-то явно плохое / неправильное в моей проверенной установке в приведенных выше моделях? Нет никаких has_many through Документация, чтобы следовать, поэтому я немного догадался.

1 ответ

Решение

Потенциально связанный с этой проблемой Rails, мне пришлось поменять dependent: :destroy линии:

приложение / модели /post.rb

class Post < ActiveRecord::Base
  audited
  has_associated_audits

  has_many :categorizations
  has_many :categories, through: :categorizations, dependent: :destroy
end

приложение / модели /category.rb

class Category < ActiveRecord::Base
  audited
  has_associated_audits

  has_many :categorizations
  has_many :posts, through: :categorizations, dependent: :destroy
end

С этой настройкой я вижу аудит как для добавления, так и для удаления отношений.

Другие вопросы по тегам