簡體   English   中英

Rails has_many通過查詢-查找除子集以外的所有子集

[英]Rails has_many through query - find all excluding a subset

通過用戶,我希望能夠獲得所有未由該用戶添加書簽的公司。

例如在公司{A,B,C,D,E,F}中

如果用戶1加了書簽{A,E}

我希望能夠查詢用戶以獲取{B,C,D,F}

class User < ActiveRecord::Base
    has_many :bookmarks
    has_many :companies, :through => :bookmarks
end

class Bookmark < ActiveRecord::Base
    belongs_to :user
    belongs_to :company
end

class Company < ActiveRecord::Base
    has_many :bookmarks
    has_many :users, :through => :bookmarks
end

你有邏輯。 您只需要實現它

獲取所有公司的記錄

all_companies = Company.all

獲取該用戶的所有公司

user_companies = User.find(id).companies

減去兩個數組

not_user_companies = all_companies - user_companies

我剛剛檢查了一下,您可以互相減去ActiveRecord_Associations_CollectionProxy

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM