ruby-on-rails Ruby on Rails:如何通过复制主键来创建`has_one`关系?

8tntrjer  于 12个月前  发布在  Ruby
关注(0)|答案(1)|浏览(148)

我有两张table:

Dogs
- id (primary key)

Cats
- id (primary key)

字符串
我想介绍第三个表,比如Collars,狗和猫都有:

Collars:
- id (primary key)
- size


通常情况下,如果只是Dog -> Collar模型关联,我可以创建has_one关系,默认主键id关系将被解析。

class Dog < ActiveRecord:Base
  has_one :collar
end

dog.collar.size = "XL"


然而,由于我有2个模型(狗和猫),我不确定如何解决这种关联,因为狗和猫表可以有重复的id值。所以has_one与主键福尔斯的关系破裂。

class Dog < ActiveRecord:Base
  has_one :collar
end

class Cat < ActiveRecord:Base
  has_one :collar
end

# Dog Record - id: 1
# Cat Record - id: 1
# 2 separate tables allow for duplicate primary keys, so it would be impossible to resolve

dog.collar.size = "XL"
cat.collar.size = "S"


有没有一种方法可以使这种关系与活动记录关联一起工作?

nfeuvbwi

nfeuvbwi1#

只是一个建议:直接添加大小的狗和猫表,因为它需要更少的空间比一个全新的表和不太复杂
belongs_to可以帮助您

相关问题