Ruby on rails 使用类名时依赖销毁失败
我有一个自引用模型,它形成了一个树结构。节点如下所示:Ruby on rails 使用类名时依赖销毁失败,ruby-on-rails,ruby-on-rails-4,Ruby On Rails,Ruby On Rails 4,我有一个自引用模型,它形成了一个树结构。节点如下所示: class Node < ActiveRecord::Base belongs_to :parent, class_name: Node has_many :children, :dependent => :destroy, class_name: Node end 我相信现在发生的事情是,乘法器期望父节点id是节点id(因为类名)。我不知道如何解决这个问题 编辑 应用答案后的模型: class Node < A
class Node < ActiveRecord::Base
belongs_to :parent, class_name: Node
has_many :children, :dependent => :destroy, class_name: Node
end
我相信现在发生的事情是,乘法器期望父节点id是节点id(因为类名)。我不知道如何解决这个问题
编辑
应用答案后的模型:
class Node < ActiveRecord::Base
belongs_to :parent, class_name: Node, foreign_key: :parent_id
has_many :children, class_name: Node, foreign_key: :parent_id, :dependent => :destroy
end
class节点:销毁
结束
您的问题是对的,因为您将名称从节点更改为:父节点
,Rails在默认情况下将查找节点id
,而不是父节点id
。要解决此问题,请添加外键::父项id
所以这条线应该是这样的:
belongs_to :parent, class_name: Node, foreign_key: :parent_id
尝试一下,我似乎仍然会犯同样的错误。除了编辑那一行,还有什么我需要做的吗?我尝试重新启动服务器,但没有效果。只是重新看了一眼,似乎这也需要为:儿童执行。是的,您也需要在上指定它。同一个键:父id
,非常有意义。我还为孩子们添加了外键,它允许删除。
belongs_to :parent, class_name: Node, foreign_key: :parent_id