我正在使用Associated Audits与集体理念 audited 的 has_many through
关系 gem 。我看到正在添加针对 through
模型的 create
审核,但删除该关系后我没有看到任何审核。
这是我的 3 个模型。一个帖子
可以属于多个类别
。
app/models/post.rb
class Post < ActiveRecord::Base
audited
has_associated_audits
has_many :categorizations, dependent: :destroy
has_many :categories, through: :categorizations
end
app/models/category.rb
class Category < ActiveRecord::Base
audited
has_associated_audits
has_many :categorizations, dependent: :destroy
has_many :posts, through: :categorizations
end
app/models/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 %>
- 当我编辑现有
帖子
并选中类别
复选框时,我确实看到一个新的审核操作字段中带有create
值的审核条目。 - 当我编辑现有的
帖子
并取消选中类别
的复选框时,我没有看到新的审核条目。 当我删除
Post< 时,我确实看到了
,所以这方面工作得很好。Post
和Categorization
auditable_type 字段的destroy
审核- 经过审计可以跟踪这些取消选择吗?如果是这样,怎么办?
- 我在上述模型中审核的设置是否有任何明显的错误/错误?没有可遵循的
has_many through
文档,所以我猜测了一下。
最佳答案
可能与this Rails issue相关,我不得不换掉我的dependent: :destroy
行:
app/models/post.rb
class Post < ActiveRecord::Base
audited
has_associated_audits
has_many :categorizations
has_many :categories, through: :categorizations, dependent: :destroy
end
app/models/category.rb
class Category < ActiveRecord::Base
audited
has_associated_audits
has_many :categorizations
has_many :posts, through: :categorizations, dependent: :destroy
end
完成此设置后,我可以看到添加和删除关系的审核。
关于ruby-on-rails - 删除关系未经过已审核 gem 的审核,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34073757/