【发布时间】:2020-01-26 22:20:04
【问题描述】:
我有三个模型,我们称它们为Product、TemplateProduct 和ReadyProduct。这些只有一个表,products 表,TemplateProduct 和 ReadyProduct 都继承自 Product 模型。 TemplateProduct 和 ReadyProduct 之间存在 has_many/belongs_to 关联。模板用于布置产品的一般特征,Readys 用于定制产品以及实际可供客户查看的内容。每个TemplateProduct 都有一个id,每个ReadyProduct 都有一个与其模板相关联的template_product_id。
该项目是使用 Rails 5 构建的。
我想要做的是收集TemplateProducts 的列表,然后获取与ReadyProducts 关联的每个模板的计数,并以不会破坏数据库的方式这样做。我了解 ActiveRecord 关联,但我的 SQL 很弱,而且我对联接的了解有限。我可以用一个简单的Product.where(conditions 收集TemplateProducts 的列表,但我不知道一旦我有了这个。为了灵活性起见,我希望能够将我的ReadyProduct 计数从这个初始集合中计算出来,因为有时我需要额外的计数,有时我不需要。我确信一定有一个简单的方法可以做到这一点,但我还没有找到解决方案。
【问题讨论】:
标签: ruby-on-rails ruby join single-table-inheritance