2016-12-11 7 views
0

私は3モデル、Organisationが多いUserが多いProjectを持っています。Rails-同じ祖父母を持つすべてのレコードを取得

同じ組織に属するすべてのProjectをどのようにクエリできますか?

現在、私にはProject.joins(user: [:organisation])がありますが、それはすべてProjectになり、Userでグループ化されます。私はOrganisationのIDを指定する方法がわかりません。

答えて

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 
関連する問題