рельсы ассоциация нетерпеливо загружается с has_many: через - PullRequest
1 голос
/ 26 мая 2011

У меня проблемы с поиском ссылки на класс от А до Е. Вот класс, подразумеваемый:

А имеет много B
B принадлежит A
B принадлежит C
А имеет много С до B

C имеет много D
D принадлежит C
D принадлежит E class_name C
C имеет_ множество от E до D

Хорошо, я знаю, что это сбивает с толку, поэтому я создал схему и надеюсь, что она более понятна ...

enter image description here

Мой вопрос заключается в том, как я могу связать класс A с классом E (то есть в действительности класс C с определенной ролью). Как я могу использовать a.es (es => множественное число E: s)?

Я пробовал от A has_many E до C (на мой взгляд, это было хорошее решение, потому что A has_many C (через B) и C has_many E (через D)), но это выдало ошибку:

ActiveRecord :: HasManyThroughSourceAssociationMacroError: Недопустимый макрос отражения источника: has_many: through для has_many: es,: through =>: cs. Используйте: source, чтобы указать источник отражения

Я кодирую на рельсах V2.3.9

Если у вас есть идеи, пожалуйста, скажите мне. Заранее спасибо.

1 Ответ

0 голосов
/ 26 мая 2011

Хотя есть некоторые плагины, которые расширяют функциональность отношений :through, обычно ActiveRecord невозможно использовать для одновременного перемещения по нескольким слоям.Лимит обычно составляет один :through, не более.

...