我有类项目,删除儿童导轨4
class Project < ActiveRecord::Base
has_many :Users
acts_as_tree
end
我想删除所有的孩子,如果我删除父,在这种情况下的意思,如果我删除的项目(父)必须全部删除用户(儿童)和子项目(儿童)。
我可以通过用户dependent: :delete_all
补充,但我不知道我该怎么做acts_as_tree
感谢
我有类项目,删除儿童导轨4
class Project < ActiveRecord::Base
has_many :Users
acts_as_tree
end
我想删除所有的孩子,如果我删除父,在这种情况下的意思,如果我删除的项目(父)必须全部删除用户(儿童)和子项目(儿童)。
我可以通过用户dependent: :delete_all
补充,但我不知道我该怎么做acts_as_tree
感谢
尝试使用相关的:破坏,如: -
has_many :users, dependent: :destroy
我知道我是如何为用户做的,我不知道我该怎么做acts_as_tree! 阅读plz问题 – Arthur
act_as_tree
默认行为会自动破坏children
当你破坏parent
,你可以看到在源代码(https://github.com/amerine/acts_as_tree/blob/master/lib/acts_as_tree.rb)
但是,你可以改变这种行为的具体方式,你会用has_many
方法相同,例如:
act_as_tree dependent: :delete_all
你的情况
所以,你只需要级联破坏用户:
class Project < ActiveRecord::Base
has_many :users, dependent: :destroy
acts_as_tree # dependent: :destroy
end
因此,@ user3506853的回答实际上是正确的,考虑到您提出问题的方式。
干杯!
您应该定义树关系作为关联! 'has_many:children,class_name:'Project',dependent::destroy,foreign_key:'parent_id''(检查foreign_key的名称) –