我有三个表:
- 地点
- 空间(属于馆)
- 包括空间(归属于空间)
从两个表返回的数据集返回过滤记录
我收到路线中Venue的id并返回我知道的所有相关空间都包含Spaces(空间记录中的一个名为num_included_spaces__c的字段,用于维护其子项的计数)。现在,我拥有该场所的所有相关父空间,我需要为它们查找所有包含空格。
一个包含的空间仍然是一个空间,它恰好有一个驻留在同一个表中的父项。我试图把这个:
地点= Rockdog
- 空间=楼上
- 空间=媒体室
- 空间=庭院
- 空间=楼下
- 空间=前天井
- 空间=室内酒吧
进入这个:
地点= Rockdog
- 空间= Upsta IRS
- 包括空间=媒体室
- 包括空间=庭院
- 空间=楼下
- 包括空间=前天井
- 包括空间=室内酒吧
的包括的空格表具有belongs_to__c和space__c作为字段,其中belongs_to__c是父空间的ID,space__c是子级的ID。所以我希望找到的所有地方belongs_to_c匹配任何@spaces的ID回以下
@sub_spaces = Space.where("venue__c = ? AND num_included_spaces__c = ?", params[:venue],0)
@spaces = Space.where("venue__c = ? AND num_included_spaces__c > ?", params[:venue],0)
我怎么会写这个活动记录查询的@included_spaces包括的空间?
我想我可能会问我的问题不对,但您的包含空间没有belongs_to和空格字段。它看起来好像你假设包含空间不是空间,它们是。包含的空间更多地是空间具有父母的参考。额外的皱纹是,空间表和包含空间都没有我可以使用的主键,所以我将不得不加入外键。 – csakon
不,我声明了belongs_to和has_many的层次结构:''场地'有很多'空间','空间'也有很多'包含空间','包含空间'属于'空间'和'空间'也属于一个'场地'。也许你认为这种方式是因为你在表格描述中没有看到FK约束,那是因为我通过padrino生成器创建了它们,我认为他们没有实现通过迁移创建外键的功能。然而,如果宣布FK,唯一更快的查询将是唯一的变化。顺便说一句,如果你添加表结构将会很好。 – marmeladze