我正在创建自定义表单构建器。
表格 has_many 栏目。
部分 has_many 字段。
字段 has_many User_Values 。
User_Values 表中有一列名为 cloned_index 。当用户复制某个部分但需要保持这些部分的唯一性时,我会使用它。
我的问题:
有人可以帮我写一个查询,对于每个部分,按字段的用户值的cloned_index对字段进行分组。
我目前有:
form.sections.each do |section| section.fields.each do|field|
field.user_values.group_by(&:cloned_index)
end
这目前不起作用,非常难以遵循。我确信有一种简单的方法可以做到这一点,我现在还没有看到。
答案 0 :(得分:0)
form.sections.joins(fields: [:user_values]).group("user_values.cloned_index")
您需要join
表格将它们组合在一起。上述查询将返回按sections
cloned_index
如果您想将fields
与sections
分组,请尝试
fields.joins(:user_values,:section]).where({sections: {form_id: form.id}}).group("sections.id , user_values.cloned_index")
这将返回按section ID
和cloned_index