Удаление отношений не проверяется проверенным драгоценным камнем
Я использую Ассоциированный аудит на 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
Таким образом, этот аспект работает хорошо.- Может ли проверяемый отследить эти отмены? Если так, то как?
- Есть ли что-то явно плохое / неправильное в моей проверенной установке в приведенных выше моделях? Нет никаких
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
С этой настройкой я вижу аудит как для добавления, так и для удаления отношений.