我使用的是主动记录信誉系统gem。
我的出发点是显示一个有相关投票的企业列表:
@businesses = Business.find_with_reputation(:votes, :all, order: "votes desc")
现在我需要按类别和产业对企业进行分组。
我想显示一个产业内某个类别的企业及其相关投票的列表。
所以我有以下模型(多对多)
Business has many Categories through Categorizations
Category has many Businesses through Categorizations
Business has many Estates through Localizations
Estate has many Businesses through Localizations
我可以得到分组业务
@businesses = @estate.businesses.joins(:categories).where(categories: {id: @category.id})
但我不知道如何获得相关的选票。有什么想法吗?
最佳答案
两者可能是可链接的:
@businesses = @estate.
businesses.
joins(:categories).
where(categories: {id: @category.id}).
find_with_reputation(:votes, :all, order: "votes desc")
为什么会这样?:ActiveRecord中的大多数查询实际上并不返回对象,而是一个
ActiveRecord::Relation
对象,您可以将查询附加到该对象并用于进一步的链接查询。关于ruby-on-rails - 如何使用具有多对多关系的事件记录信誉 gem ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19905220/