2015-05-04 75 views
0

我有四個型號使用包括或左外連接的複雜的嵌套協會

class Company < ActiveRecord::Base 
    has_many :share_types 
    belongs_to :user 
end 
class ShareType < ActiveRecord::Base 
    has_many :shares 
    belongs_to :company 
end 
class Share < ActiveRecord::Base 
    belongs_to :user 
    belongs_to :share_type 
end 
class User < ActiveRecord:Base 
has_many :companies 
has_many :shares 
end 

現在在哪兒公司是由CURRENT_USER或用戶擁有的所有公司的名單有股份公司這樣的事情。

Company.joins(share_types:[:shares]).where("shares.user_id=? OR companies.user_id=?", @user.id, @user.id) 

但左外連接另一個我不知道如何使用包括具有或條件另一條線索是

Company.includes(share_types:[:shares]).where(shares:{user_id: @user.id} OR companies:{user_id: 1}) 

我怎樣才能做到這一點。

回答

0

我能夠藉助參考資料獲得預期的結果。這裏是我的查詢只是張貼來幫助別人。

Company.includes(share_types:[:shares]).where("shares.user_id=? OR companies.user_id=?", 1,1).references(:shares) 

其工作由於鋼軌4道由比·費爾南德斯