Ruby on rails Ruby/Rails-在模型中查找具有大多数实例的外键
我有一个已加入的模型,该模型具有模型事件的外键 连接的模型称为目标。我试图找到合适的find条件,以确定哪个event_id在目标连接模型中拥有最多的实例。基本上,连接模型中哪个外键id的条目最多 有办法做到这一点吗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
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。您能给我们有关模型的代码吗?您能给我们有关模型的代码吗?如果我正确理解了问题,您希望活动具有最大的目标。如果我正确理解了问题,你想要的是目标最多的活动。