[英]Creating relationships in rails 4 (one model can belong to multiple other models)
我正在尝试在Rails 4中对链接和节点进行建模。链接可以具有两个节点(源节点和目标节点)。 一个节点可以属于多个链接。 我在链接模型中编写了此代码。
class Links < ActiveRecord::Base
has_one :source_node, class_name: 'Node'
has_one :target_node, class_name: 'Node'
end
我是为节点类编写的。 这个对吗?
class Nodes < ActiveRecord::Base
belongs_to :link
end
链接的用例:
SN - L - TN
SN - L
L - TN
L
一个链接具有一个源节点。
一个链接具有一个目标节点。
节点用例:
L3
|
L1 - SN - L2
|
L4
一个节点有许多链接。
所以:
class Links < ActiveRecord::Base
belongs_to :source_node, class_name: 'Node' // didn't use has_one*
belongs_to :target_node, class_name: 'Node'
end
class Nodes < ActiveRecord::Base
has_many :links
end
之所以使用belongs_to而不是has_one是因为Link将具有Node的外键。
如果关系以相反的方式定义怎么办? 其中Node具有外键(belongs_to)和Link(has_one)每种类型的节点。 通过这种设计,您将需要为Node模型中的N个链接定义一个字段link_N_id
。
问题是:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.