Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.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 Ruby/Rails-在模型中查找具有大多数实例的外键_Ruby On Rails_Ruby_Foreign Keys - Fatal编程技术网

Ruby on rails Ruby/Rails-在模型中查找具有大多数实例的外键

Ruby on rails Ruby/Rails-在模型中查找具有大多数实例的外键,ruby-on-rails,ruby,foreign-keys,Ruby On Rails,Ruby,Foreign Keys,我有一个已加入的模型,该模型具有模型事件的外键 连接的模型称为目标。我试图找到合适的find条件,以确定哪个event_id在目标连接模型中拥有最多的实例。基本上,连接模型中哪个外键id的条目最多 有办法做到这一点吗 Goal.where(:event.id => ??????? ).first 无法想出更优雅的解决方案,但请尝试以下方法: results = Goal.connection.select_all('SELECT COUNT(*) as amount, event_id

我有一个已加入的模型,该模型具有模型事件的外键

连接的模型称为目标。我试图找到合适的find条件,以确定哪个event_id在目标连接模型中拥有最多的实例。基本上,连接模型中哪个外键id的条目最多

有办法做到这一点吗

 Goal.where(:event.id => ??????? ).first

无法想出更优雅的解决方案,但请尝试以下方法:

results = Goal.connection.select_all('SELECT COUNT(*) as amount, event_id FROM goals GROUP BY event_id ORDER BY amount DESC LIMIT 0, xx')
raise results.inspect
如果您只需要一个最多的事件id和最多的条目,您还可以使用:

event_id = Goal.connection.select_one('SELECT COUNT(*) as amount, event_id FROM goals GROUP BY event_id ORDER BY amount DESC LIMIT 1').first

无法想出更优雅的解决方案,但请尝试以下方法:

results = Goal.connection.select_all('SELECT COUNT(*) as amount, event_id FROM goals GROUP BY event_id ORDER BY amount DESC LIMIT 0, xx')
raise results.inspect
如果您只需要一个最多的事件id和最多的条目,您还可以使用:

event_id = Goal.connection.select_one('SELECT COUNT(*) as amount, event_id FROM goals GROUP BY event_id ORDER BY amount DESC LIMIT 1').first

如果您已经正确设置了模型,您应该能够做到这一点(如果不是这样,则:正确设置模型):

丹尼的解决方案不是很好


您不应该(或者至少很少)自己在rails中编写sql。

如果您正确地设置了模型,您应该能够做到这一点(如果不是这样的话:正确地设置模型):

丹尼的解决方案不是很好


您不应该(或至少很少)自己在rails中编写sql。

您能给我们有关模型的代码吗?您能给我们有关模型的代码吗?如果我正确理解了问题,您希望活动具有最大的目标。如果我正确理解了问题,你想要的是目标最多的活动。