查询关联

时间:2013-07-12 18:46:44

标签: ruby-on-rails

我有一个Step模型和一个Images模型;步骤和图像之间的关联是图像属于步骤,步骤有许多图像。我想查询返回具有多个图像的所有步骤的步骤。我如何在rails控制台中执行此操作?

我尝试了以下内容:

Step.where("images > ? ", 1)
Step.joins(:images).where("image.count > 1")

并且都不起作用。

非常感谢!

2 个答案:

答案 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')

检查this explanation