Используя рубин сиквел 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
При чтении руководства ассоциация похоже, что мне нужна ассоциация one_to_one
в модели Item
для item_types
и item_values
. Тем не менее, я не уверен, как правильно их связать. Должен ли внешний ключ передаваться через опцию key
, или есть более подходящий метод?