Рельсы, имеющие доступ ко всем отношениям с глубоким вложением - PullRequest
0 голосов
/ 28 июня 2018

У меня есть следующие модели:

class Kid < ApplicationRecord
  belongs_to :group, optional: true

class Group < ApplicationRecord
  has_many :kids
  belongs_to :head

class Head < ApplicationRecord
  has_many :groups
  belongs_to :axis

class Axis < ApplicationRecord
  has_many :heads

То, что я пытался сделать, это получить всех детей головы и оси (например: @ axis.kids выдаст всех детей, как @ group.kids делает). Я попробовал некоторые методы класса с циклами и массивами, но пока не повезло. есть идеи как это сделать? Спасибо!

Использование рельсов 5.2

Edit: Я получил всех детей головы с

def kids
 Kid.where(group_id: self.groups.map(&:id))
end

Но до сих пор не удалось заполучить ось 'дети

Ответы [ 2 ]

0 голосов
/ 30 июня 2018

Попробуйте добавить это: has_many: дети, через:: головы В axis.rb

0 голосов
/ 28 июня 2018

В голову вы можете добавить:

has_many :kids, through: :groups

Тогда вы можете сделать что-то вроде:

@head.kids

См. Rails документы

...