我有一个Step模型和一个Images模型;步骤和图像之间的关联是图像属于步骤,步骤有许多图像。我想查询返回具有多个图像的所有步骤的步骤。我如何在rails控制台中执行此操作?
我尝试了以下内容:
Step.where("images > ? ", 1)
Step.joins(:images).where("image.count > 1")
并且都不起作用。
非常感谢!
答案 0 :(得分:1)
我可以从我的应用程序中给你类似的查询,这样你就可以稍微锻炼一下你的大脑;)
Activity.joins(:slots).group('activities.id').having('COUNT(activity_id) > 1')
好的,你应该做什么
Step(:images).group('steps.id').having('COUNT(images.step_id) > 1')
这完全是我的例子,但改变了模型名称。
答案 1 :(得分:0)
也许是这样的?:
Step.find(:all,
select: "steps.*, count(images.id) as image_count",
joins: :images,
having: "image_count > 1",
group => 'images.step_id')