Ruby on rails 创建rails数据库模型
如果表A包含一些字段,即:Ruby on rails 创建rails数据库模型,ruby-on-rails,ruby,Ruby On Rails,Ruby,如果表A包含一些字段,即: id name release_date 表B包含两个表A实体,即 id from to (from和to是表A中的ID) 如何在模型中连接这两个实体,以便使用点运算符从一个节点访问Bs 关于设计 从表A记录中创建了另一个记录A,因此我希望跟踪哪个记录是从哪个记录创建的 这就是表B存在的原因,所以我知道A是从哪个表中生成的,A是从哪个表中生成的 B班 has_many :froms, :foreign_key => "from" , :class_name=
id
name
release_date
表B包含两个表A实体,即
id
from
to
(from和to是表A中的ID)
如何在模型中连接这两个实体,以便使用点运算符从一个节点访问Bs
关于设计
从表A记录中创建了另一个记录A,因此我希望跟踪哪个记录是从哪个记录创建的
这就是表B存在的原因,所以我知道A是从哪个表中生成的,A是从哪个表中生成的
B班
has_many :froms, :foreign_key => "from" , :class_name=>"A"
has_many :tos, :foreign_key => "to" , :class_name=>"A"
你可以利用关系。您还可以在此处查看所需迁移的详细信息。尝试使用多对多关系,使用
通过
点击此链接,它将消除您对关系的所有疑问
它可能是
也有一个:)这不允许你从A访问Bs,你需要一个属于A类的,但你需要一个单独的字段,这取决于当我尝试访问A.froms时它是“from”A还是“to”A。我得到的集合代理只是一个包含ActiveRecord模型实例的奇特数组。试试Yevgeniy的建议,将has_mu many改为has_one(可能改为'from'和'to',而不是复数,以保持事物的正常状态)。HABTM通常不赞成使用has_mu many:through
,对于这样一个广泛的问题,给出这样的答案更不鼓励。你能详细介绍一下这个设计吗?这就是A和B之间的关系?@Michael Szyndel我希望这能回答你的问题所以你基本上有一个记录树?为什么不在likeparent\u id
中增加一列呢?对于管理树结构,我认为最流行的解决方案是祖先宝石