1

我无法找到一种方法来链接到类A至E这里是隐含的类:轨协会预先加载与的has_many:通过

A有里许多
B属于一个
B属于ç
A具有通过乙许多C

C具有许多d
d属于至C
d属于到E CLASS_NAMEç
ç的has_many E至d

好吧,我知道这是混淆了,所以我做了一个方案,我希望这是更容易理解......

enter image description here

我的问题是如何链接的A级与E级(这在现实中是具有特殊作用的C类)。我如何使用a.es(es =>复数的E:s)?

我试过的has_many E到C(在我心中,这是一个很好的解决方案,因为A的has_many C(通过B)和C的has_many E(通过d)),但它引发错误:

的ActiveRecord :: HasManyThroughSourceAssociationMacroError :无效的源反射宏:has_many:through for has_many:es,:through =>:cs。使用:源指定源反射

我编码在轨道上V2.3.9

如果您有任何想法,请告诉我。 预先感谢您。

回答

0

虽然有一些插件可以扩展:through关系功能,但通常不可能同时使用ActiveRecord在多个图层中导航。限制通常是一个:through,不再。

+0

但即使我不能直接做a.es我至少可以做a.cs.es(cs =>复数的C,es =>复数的E),然后在'es'中添加一个'es'方法A允许做a.es. 你能给我一个这些插件的链接吗? – guts 2011-05-27 07:42:47