2017-03-07 58 views
0

我旁边型号:ROR:计数器缓存,的has_many吼声,嵌套PARAMS删除

class Document < ActiveRecord::Base 
    has_many :sub_roles_documents, dependent: :destroy 
    has_many :sub_roles, through: :sub_roles_documents,class_name: '::SubRole' 
end 

class SubRole < ActiveRecord::Base 
    has_many :sub_roles_documents, dependent: :destroy 
    has_many :documents, through: :sub_roles_documents, class_name: '::Document' 
end 

class SubRolesDocument < ActiveRecord::Base 
    belongs_to :sub_role, counter_cache: :documents_count, touch: true 
    belongs_to :document, counter_cache: :sub_roles_count 
end 

当我删除了使用嵌套参数计数器缓存sub_roles_count不改变一些文件sub_roles,但是当我添加新的子文件到文件都工作正常。 如果我直接删除文件documents.sub_roles.delete(specific_sub_role)的子文件 - 它也很好。 对我来说最好的办法是什么?

回答

0

我想通了一个问题,所有在文件中写道:

此选项可用于配置命名的自定义:counter_cache。当您在belongs_to关联中自定义您的:counter_cache的名称时,您只需要此选项。因为我用的是自定义名称计数器缓存

class Document < ActiveRecord::Base 
    has_many :sub_roles_documents, dependent: :destroy, counter_cache: :documents_count 
    has_many :sub_roles, through: :sub_roles_documents,class_name: '::SubRole' 
end 

在我来说,我必须写未来。