Rails:两个模型已经拥有' has_one'关系

时间:2015-01-18 21:50:18

标签: ruby-on-rails-4 has-one

如果我想要模型has_one:model2 Model2 has_one:model ,我是否必须创建连接表?像 model_model2 之类的东西?然后表格如下:模型(id) Model2(id) ModelModel2(id,model_id,model2_id)

1 个答案:

答案 0 :(得分:1)

您只需创建关系字段,尾部将:dog_id,狗将:tail_id 实际上你也可以只使用1个字段来创建它,例如tail会有:dog_id而这就是全部,然后关系就是

  狗有一个尾巴   尾巴属于狗

就是这样。

如果你想尝试两者之间的婚姻表,你需要创建一个联接模型DogTail

class DogTail < ActiveRecord::Base
  belongs_to :dog
  belongs_to :tail
end

然后创建has_one :through关系

class Dog < ActiveRecord::Base
  has_one :tail, through: :dogtail
end
class Tail < ActiveRecord::Base
  has_one :dog, through: :dogtail
end