我在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
时,我确实会看到Post
和Categorization
auditable_type字段的Post
审核,因此该方面效果很好。
has_many through
文档可供遵循,所以我猜了一下。答案 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
有了这个设置,我就会看到添加和删除关系的审核。