【问题标题】:In Rails models, can I change belongs_to to has_one and has_one to belongs_to?在Rails 模型中,我可以将belongs_to 更改为has_one 并将has_one 更改为belongs_to 吗?
【发布时间】:2010-09-09 20:35:58
【问题描述】:
如果我有两个模型。模型 1 属于_模型 2,模型 2 有_一个模型 1。因此,我可以从 Model1 访问 Model2,也可以从 Model2 访问 Model1。现在我的问题是,我可以将关系更改为 Model2 belongs_to Model1 和 Model1 has_one Model2 吗?它还可以让我从Model1遍历到Model2,从Model2遍历到Model1。不太清楚,谁能解释一下?
谢谢。
【问题讨论】:
标签:
ruby-on-rails
activerecord
model
【解决方案1】:
您当然可以将关系从一种方式转变为另一种方式。
您显然需要在model_two 表上添加model_1_id 列,迁移任何现有关联并删除model_one 表上的model_2_id 列。
我想不出您还需要做什么才能使其正常工作。当belongs_to 与has_one 配对时,这些关联的行为几乎相同。