0

我有一个 Step 模型和一个 Images 模型;Steps和Images的关联是一个Image属于一个Step,Steps有很多个images。我想查询它返回具有多个图像的所有步骤的步骤。我将如何在 Rails 控制台中执行此操作?

我尝试了以下方法:

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

也不工作。

非常感谢!

4

2 回答 2

1

我可以从我的应用程序中给你类似的查询,这样你就可以锻炼一下你的大脑;)

Activity.joins(:slots).group('activities.id').having('COUNT(activity_id) > 1')

好的,你应该怎么做

Step(:images).group('steps.id').having('COUNT(images.step_id) > 1')

这正是我的示例,但型号名称已更改。

于 2013-07-12T19:04:11.510 回答
0

也许是这样的?:

Step.find(:all, 
          select: "steps.*, count(images.id) as image_count", 
          joins: :images, 
          having: "image_count > 1", 
          group => 'images.step_id')

检查这个解释

于 2013-07-12T19:06:28.303 回答