Здравствуйте. Мне нужна помощь в создании структуры для моей базы данных (PostgreSQL).
Я хочу создать коллекцию (запрос), которая может получить все комнаты определенной квартиры в здании .eg.
biulding.find(1).flats.find(1).rooms.
Как я могу структурировать свою ассоциацию для архивирования этого?
Спасибо
Вот модели
class Building < ApplicationRecord
has_many :flats
has_many :rooms, through: :flat
end
class Flat < ApplicationRecord
belongs_to :building
has_many :rooms
end
class Room < ApplicationRecord
belongs_to :flat
belongs_to :building
end
схема
create_table "buildings", force: :cascade do |t|
t.string "name"
.....
end
------------------
create_table "flats", force: :cascade do |t|
t.string "number"
t.bigint "building_id"
t.bigint "room_id"
t.index ["building_id"], name: "index_flats_on_building_id"
t.index ["room_id"], name: "index_flats_on_room_id"
end
-------------------------------
create_table "rooms", force: :cascade do |t|
t.string "number"
t.bigint "flat_id"
t.bigint "building_id"
t.index ["building_id"], name: "index_rooms_on_building_id"
t.index ["flat_id"], name: "index_rooms_on_flat_id"
end