1
我有一個解決方案模型,與has_many
評論,並評論'has_many'ReviewValues。每個ReviewValue還鏈接到包含標籤名稱的標籤。 我正在嘗試選擇avarage scores
(適用於所有按標籤分組的標籤),並附帶特定解決方案。相關元素的ActiveRecord查詢
基本上評測模型解決方案和ReviewValues之間的連接表(也有包含姓名的標籤表)
我到目前爲止是這樣的:
@total = self.reviews.review_values.average(:score)
的問題是我只能在一個特定的評論中調用review_values,而不是全部評論。所以我不得不這樣做self.reviews.first.review_values...
這並不能幫助我,因爲我需要平均每個reviewvalue(通過標籤名稱)
這是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 has_many tags?「如果是這樣 - 它可能會更復雜一些......我認爲我以前沒有嘗試過雙向通過,但它可能只是值得一試(例如」Solution has_many標籤:通過:review_values「) –
我能夠通過連接'averages = self.review_values.joins(:tag).group(:tag).average(:score)'''感謝您的幫助! – networkprofile