gpt4 book ai didi

ruby-on-rails - 为拥有最多歌曲的用户排序

转载 作者:搜寻专家 更新时间:2023-10-30 22:19:05 24 4
gpt4 key购买 nike

希望是一个简单的问题。我有几个模型,其中两个,:users:songs,交互以从数据库中获取数据。

一个用户有_many :songs

我正在尝试在 USER INDEX 操作中找到歌曲最多的用户,即列出歌曲最多的 10 个用户,歌曲最多的用户在顶部,降序。

到目前为止,我在 index 中的 users_controller 中;

@users = User.all

到目前为止,我在 View 中所能做的就是users/index;

<% @users.each do |user| %>
<%= user.name %><%= user.songs.count %>
<% end %>

有效,它可以计算歌曲数量,但我如何按拥有最多歌曲的用户排序?

我一直在查看 block 内的 sort_by,我想这可以通过列出所有歌曲并按用户对它们进行分组来完成,但我觉得效率不够高。 -如您所见,我不是高级开发人员。

如果可能的话,请告诉我你们的想法以及我的解决方案的答案。让我感到困惑的是,我正在根据另一个表生成的数据来排序从一个表生成的列表。一定很简单,但我以前没有做过,所以我无法理解它。

提前致谢。

最佳答案

你应该使用这样的东西:

User.includes(:songs).order{|x| x.songs.size}

这在一个查询中完成了所有事情,因此它应该比 example 更有效率

User.all.sort{|x| user.songs.size}

这将为每个用户执行查询

关于ruby-on-rails - 为拥有最多歌曲的用户排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6768467/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com