2

現役レピュテーションシステム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})

しかし、関連する投票を取得する方法がわかりません。何か案は?

4

1 に答える 1

2

2つは連鎖可能かもしれません:

@businesses = @estate.
                businesses.
                joins(:categories).
                where(categories: {id: @category.id}).
                find_with_reputation(:votes, :all, order: "votes desc")

なぜこれが機能するのでしょうか?: ActiveRecord のほとんどのクエリは実際にはオブジェクトを返しませんが、ActiveRecord::Relationクエリを追加してさらに連鎖したクエリに使用できるオブジェクトを返します。

于 2013-11-11T13:35:26.150 に答える