我使用的是主动记录信誉系统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/

10-15 18:45