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

时间:2016-12-11 22:33:04

标签: ruby-on-rails scope ruby-on-rails-5

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

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

目前我有Project.joins(user: [:organisation]),但这只是获取所有Project并按User对其进行分组。我不确定如何指定Organisation ID。

1 个答案:

答案 0 :(得分:1)

假设您有一个名为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