1
私はhas_many
のレビューとレビューと 'has_many' ReviewValuesのソリューションモデルを持っています。各ReviewValueは、タグ名を含むタグにもリンクされています。 私は、特定のソリューションに付随するavailage scores
(タグでグループ化されたすべてのタグ用)を選択しようとしています。関連する要素のActiveRecordクエリ
基本的にレビューモデルは、ソリューションおよびReviewValues間の結合表である(と名前が含まれているタグテーブルもあります)
私はこれまで持っていることはこれです:
@total = self.reviews.review_values.average(:score)
問題がされ1つの特定のレビューに対してのみreview_valuesを呼び出すことができ、すべてのレビューでは呼び出せません。私は(タグ名により)各reviewvalueの平均を必要とするので、私を助けていないself.reviews.first.review_values...
ような何かを
を持っていると思いますので、これはreview_valuesテーブルは次のようになります。
Table review_values
===================
id, tag_id, review_id, score, created_at, updated_at
-------------------
id int(11) PK
tag_id int(11)
review_id int(11)
score int(11)
created_at datetime
updated_at datetime
そして、タグテーブル:
Table tags
==========
id, name
----------
id int(11) PK
name varchar(255)
これは動作するようです。私は各tag_idの平均をどのように得ることができますか? – networkprofile
良い質問 - 「ダブルスルー」のようですか?つまり、review_values have_many tags?」と表示された場合、もう少し複雑になる可能性があります...私はこれまでにダブルスルーを試みたことはないと思いますが、タグ:through:review_values ") –
私は' averages = self.review_values.joins(:tag).group(:tag).average(:score) 'の助けを借りてそれを行うことができました! – networkprofile