named_scope用于相关表中列的总和

我的SQL技能充其量是可笑的,这就是为什么Rails和ActiveRecord让我的生活变得更轻松。然而,这一次,它可能代表了一个拐杖,让我无法理解后端发生了什么,以便知道如何为named_scope提供信息。 我正在尝试返回表格中排名前10的记录,这些记录代表了游戏中得分最高的“演员”。分数通过Actor> Acts> Decsisons.point_value计算 我可以很容易地得到任何一个角色的得分,但是联接和总和高于我的SQL理解,以便将其范围扩展到整个数据库中的前10名。 这是我目前拥有的Actor模型:
class Actor < ActiveRecord::Base
  has_many :acts, :dependent => :destroy
  has_many :decisions, :through => :acts, :order => 'created_at'

  named_scope :high_scores, {
    :conditions => {:finished => true}, 
    :joins => "INNER JOIN acts ON actor.id = acts.actor_id INNER JOIN decisions on decision.id = decision.act_id", 
    :group => 'actor.id',
    :select =>'actors.*, SUM(acts.decisions.point_value) AS score', 
    :order => "score DESC", 
    :limit => 10
  }

end
根据这里和其他一些网站上的一些帖子尝试了一些事情后,我显然没有理解正在发生的事情或者named_scope需要连接的点。一些清晰度将非常值得赞赏。谢谢。 *编辑:将named_scope更新为我目前拥有的内容 这现在给我以下错误:   Mysql ::错误:'字段列表'中的未知列'acts.decisions.point_value':SELECT actors。*,SUM(acts.decisions.point_value)AS得分FROMѭ1INNER JOIN作用于actor.id = acts.actor_id INNER JOIN对decision.id = decision.act_id的决定WHERE(
actors
.
finished
= 1)GROUP BY actor.id ORDER BY得分DESC LIMIT 10     
已邀请:
相反,在表格列中设置最终得分,因为它似乎不太占用资源。     

要回复问题请先登录注册