1

我有三个模型,程序 Subprograms1 Subprograms2

程序 -> has_many :subprograms1 , :subprograms2

子程序 1 -> has_and_belongs_to_many:程序

子程序 2 -> has_and_belongs_to_many:程序

我想获取所有 Subprograms1 和 Subprograms2 属于特定程序。

有没有可能在铁轨上。

提前致谢......

4

2 回答 2

0

如果我理解正确,您应该能够通过访问 Programs 模型中的属性来访问所有 Subprograms1 和 Subprograms2

p = Programs.find(10)
sp1 = p.Subprograms1 
sp2 = p.Subprograms2
于 2012-12-01T17:27:55.977 回答
0

如果您的数据中的结构是扁平的(其他子程序下方没有子程序),您可以使用 Active Record 的多态关联 来使用对多个其他表(不仅仅是一个)的引用,因此您可以设置从 Programs 到 Subprograms1对 Subprograms2的引用并通过一个电话将它们全部检索出来。

如果数据中的结构很深(子程序可以有其他子程序),您应该将所有 3 个表放在一个表中,并使用嵌套集模型来管理数据树并检索与程序关联的所有(深层)子程序. 有许多 Ruby Gems可以帮助您实现这一目标。

于 2012-12-01T17:42:42.953 回答