通过用户,我希望能够让所有公司都没有被用户收藏。
E.g。在公司{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
答案 0 :(得分:0)
你有逻辑失败。你只需要实现它
获取所有公司的记录
all_companies = Company.all
为用户提供所有公司
user_companies = User.find(id).companies
并减去两个数组
not_user_companies = all_companies - user_companies
我刚检查过,您可以相互减去ActiveRecord_Associations_CollectionProxy