Rails—获取祖父母相同的所有记录

Rails—Get all records with same grandparent

我有三个模型,Organisation有很多User有很多Project

如何查询属于同一组织的所有 Project

目前我有 Project.joins(user: [:organisation]),但这只会获取所有 Project 并将它们按 User 分组。我不确定如何指定 Organisation id。

假设您有一个名为 organisation 的局部变量,其中填充了您感兴趣的组织,您可以在查询中添加一个 where

Project.joins(user: [:organisation]).where('organisations.id = ?', organisation.id)

但使用您已建立的关联(或创建新的关联)可能更有用

class User < ActiveRecord::Base
  has_many :projects
end

class Organisation < ActiveRecord::Base
  belongs_to :user
  has_many :projects, through: :user
end

然后你可以向你的组织询问它的项目:

organisation = Organisation.find(params[:id])
organisation.projects