Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails 4 SQL语句的作用域_Ruby On Rails_Ruby_Scope_Ruby On Rails 4 - Fatal编程技术网

Ruby on rails Rails 4 SQL语句的作用域

Ruby on rails Rails 4 SQL语句的作用域,ruby-on-rails,ruby,scope,ruby-on-rails-4,Ruby On Rails,Ruby,Scope,Ruby On Rails 4,我有3个模型,玩家,细节和英雄。玩家有很多细节,细节属于英雄。现在我想找回一个玩家扮演的所有英雄。到目前为止我已经想到了这个 Hero.whereid在player\u id=1.groupid的详细信息中选择Hero\u id 我如何为它编写一个范围,以便我也可以将玩家传递到范围?这是我到目前为止得到的,但它只对细节进行了分组。我还想数一数每一个英雄,所以最后我有x次英雄1,x次英雄2等等 作用域:英雄,->player{where'player_id=?',player.id.groupid

我有3个模型,玩家,细节和英雄。玩家有很多细节,细节属于英雄。现在我想找回一个玩家扮演的所有英雄。到目前为止我已经想到了这个

Hero.whereid在player\u id=1.groupid的详细信息中选择Hero\u id 我如何为它编写一个范围,以便我也可以将玩家传递到范围?这是我到目前为止得到的,但它只对细节进行了分组。我还想数一数每一个英雄,所以最后我有x次英雄1,x次英雄2等等

作用域:英雄,->player{where'player_id=?',player.id.groupid}
此范围在详图模型中。我不知道这是不是最好的地方,因为我想让它返回英雄而不是细节。

我想你只需要使用,所以如果你使用:

player.heroes
这将带来所有与该玩家相关的英雄。如果你不需要复制英雄,你可以使用

player.heroes.uniq

现在,关于每个英雄的总结,也许你想总结一下每个英雄有多少细节?如果这不是你想要的,请更好地解释。

好的,经过一段时间后,我终于想出了如何让大多数玩家使用示波器扮演英雄

作用域:mostplayed,->player{select'details.*,countheros.id为hero_count'。加入:hero.where'player_id=?',player.id.group'hero_id'。命令'hero_count DESC'。限制3}
也许这不是最好的解决方案,但它正是我想要它做的。

不,我不想要玩家和英雄之间的关系,因为这需要一个额外的表格。我想总结一下一个剧作家扮演英雄的次数。我需要一个与英雄完全相同的作用域。@daiikota但你已经有了一个传统的表,它是详细的,我看不出有什么问题,只是通过详细信息定义这两个模型之间的关系我希望我早些时候知道,你可以通过多个链接来链接多个关系:/