繁体   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