Ruby на Rails - Получить записи из таблицы внуков - PullRequest
2 голосов
/ 05 апреля 2020

У меня есть 3 такие таблицы (это просто упрощенный пример того, что моя таблица на самом деле):

Таблица № 1 называется Parent , и у нее только два поля: ID и Name.

У людей много детей. Поэтому в таблице №2 Childrens , в ней есть parent_id и другие неважные поля.

У детей много друзей. Таблица №3 - это Friends , и у нее есть children_id и другие несущественные поля.

По сути, учитывая только parent_id, скажем, 1, я хочу вернуть все значения из Друзья стол, чтобы они были друзьями детей этого одинокого родителя. Я предполагаю, что мне нужно будет перебрать таблицы Childrens и получить все children_id, где parent_id = 1. А потом я переберу Friends и совпаду с ранее собрано children_id. Может кто-нибудь показать мне, есть ли хороший способ сделать это в ruby на рельсах. Я использую postgresql.

1 Ответ

1 голос
/ 05 апреля 2020

Использование has_many :friends, through: :children

class Parent < ApplicationRecord
  has_many :children, dependent: :destroy
  has_many :friends, through: :children
end

class Child < ApplicationRecord
  belongs_to :parent
  has_many :friends, dependent: :destroy
end

class Friend < ApplicationRecord
  belongs_to :child
end

Тогда вы можете получить доступ ко всем друзьям, как это

parent.friends
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...