我有一个解决方案模型,has_many
评论和评论'has_many'ReviewValues。每个ReviewValue也链接到包含标记名称的标记。
我正在尝试选择与特定解决方案一起使用的avarage scores
(对于按标签分组的所有标签)。
基本上,评论模型是Solutions和ReviewValues之间的连接表(还有包含名称的Tags表)
到目前为止我所拥有的是:
@total = self.reviews.review_values.average(:score)
问题是我只能在一个特定评论中调用review_values而不是所有评论。所以我必须做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)
答案 0 :(得分:0)
您是否尝试过使用:直通? 例如:
class Solution
has_many :reviews
has_many :review_values, :through => :reviews
end
@total = my_solution.review_values.average(:score)