Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 创建rails数据库模型_Ruby On Rails_Ruby - Fatal编程技术网

Ruby on rails 创建rails数据库模型

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=

如果表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=>"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我希望这能回答你的问题所以你基本上有一个记录树?为什么不在like
parent\u id
中增加一列呢?对于管理树结构,我认为最流行的解决方案是祖先宝石