我有一个 Step 模型和一个 Images 模型;Steps和Images的关联是一个Image属于一个Step,Steps有很多个images。我想查询它返回具有多个图像的所有步骤的步骤。我将如何在 Rails 控制台中执行此操作?
我尝试了以下方法:
Step.where("images > ? ", 1)
Step.joins(:images).where("image.count > 1")
也不工作。
非常感谢!
我有一个 Step 模型和一个 Images 模型;Steps和Images的关联是一个Image属于一个Step,Steps有很多个images。我想查询它返回具有多个图像的所有步骤的步骤。我将如何在 Rails 控制台中执行此操作?
我尝试了以下方法:
Step.where("images > ? ", 1)
Step.joins(:images).where("image.count > 1")
也不工作。
非常感谢!
我可以从我的应用程序中给你类似的查询,这样你就可以锻炼一下你的大脑;)
Activity.joins(:slots).group('activities.id').having('COUNT(activity_id) > 1')
好的,你应该怎么做
Step(:images).group('steps.id').having('COUNT(images.step_id) > 1')
这正是我的示例,但型号名称已更改。
也许是这样的?:
Step.find(:all,
select: "steps.*, count(images.id) as image_count",
joins: :images,
having: "image_count > 1",
group => 'images.step_id')
检查这个解释