Rails中的关联3

时间:2012-12-01 17:25:38

标签: ruby-on-rails

我有三个型号, 程式 Subprograms1 Subprograms2

程序 - > has_many:subprograms1,:subprograms2

子程序1 - > has_and_belongs_to_many:程序

子程序2 - > has_and_belongs_to_many:程序

我想让所有Subprograms1和Subprograms2属于特定的程序。

是否可以使用rails。

提前致谢......

2 个答案:

答案 0 :(得分:0)

如果我理解正确,您只需访问程序模型中的属性即可访问所有Subprograms1和Subprograms2

p = Programs.find(10)
sp1 = p.Subprograms1 
sp2 = p.Subprograms2

答案 1 :(得分:0)

如果数据中的结构是扁平的(没有其他子程序下面的子程序),您可以使用Active Record的Polymorphic Associations来使用对多个其他表(不仅仅是一个)的引用,因此您可以设置来自程序到子程序1 到子程序2,并通过一次调用将它们全部检索。

如果数据中的结构很深(子程序可以包含其他子程序),您应该将所有3个表放入一个表中,并使用Nested Set Model来管理数据树并检索所有(深层)与程序相关的子程序。有many Ruby Gems可以帮助您实现这一目标。