1

我正在对与 Collective Idea 的已审核gem的关系使用Associated Audits 。我看到正在添加的模型的审核,但在删除该关系时我看不到任何审核。has_many throughcreatethrough

这是我的3个模型。APost可以是多个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

应用程序/模型/分类.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选中a 的框时Category,我确实看到了一个新的审计条目,该条目create在审计的操作字段中具有一个值。
  • 当我编辑现有的Post取消选中a 的框时Category,我不到新的审核条目。
  • 当我删除 a 时,我确实看到destroy了对 thePost和auditable_type 字段的审核,因此该方面工作得很好。CategorizationPost

    1. 审计可以跟踪这些取消选择吗?如果是这样,怎么做?
    2. 我在上述模型中的审核设置有什么明显的坏/错误吗?没有has_many through可遵循的文档,所以我猜了一下。
4

1 回答 1

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

有了这个设置,我看到了添加和删除关系的审计。

于 2015-12-04T00:28:24.780 回答