删除关系不会被审计的gem审核

时间:2015-12-03 18:43:08

标签: ruby-on-rails ruby ruby-on-rails-4 acts-as-audited

我在has_many through与Collective Idea的Associated Audits宝石的关系上使用audited。我看到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 1}}审计的操作字段中的值。
  • 当我编辑Post的现有Category取消选中框时,我会看到新的审核条目。
  • 当我删除destroy时,我确实会看到PostCategorization auditable_type字段的Post审核,因此该方面效果很好。

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

1 个答案:

答案 0 :(得分:1)

可能与this Rails issue相关,我不得不换掉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

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