【发布时间】:2019-10-28 17:05:27
【问题描述】:
使用 ruby sequel gem,我有一个具有以下架构的小型 (sqlite3) 数据库:
db.create_table :item_types do
primary_key :id
String :name, unique: true, null: false
end
db.create_table :item_values do
primary_key :id
String :name, unique: true, null: false
end
db.create_table :items do
primary_key :id
foreign_key :type, :item_types, key: :id
foreign_key :value, :item_values, key: :id
String :name, unique: true, null: false
String :desc, null: false
end
理想情况下,我希望能够使用类似于
item = Item.first(...)
puts item.type.name, item.value.name
阅读association 指南,看来我需要在Item 模型中为item_types 和item_values 建立一个one_to_one 关联。但是,我不确定链接它们的正确方法。外键应该通过key选项传递,还是有更合适的方法?
【问题讨论】: