gpt4 book ai didi

ruby-on-rails - 如何通过对象的属性对对象数组进行排序?

转载 作者:行者123 更新时间:2023-12-03 07:54:08 25 4
gpt4 key购买 nike

我正在控制程序中执行此查询,并且“组”模型has_many用户

@group= Group.find(params[:id])

@group用于呈现此部分(部分将组的用户转储到表中)
<%= render :partial=>"user_list", :locals=>{:users=>@group.users} %>

传递给局部变量的局部变量'users'是一个User对象数组。
- !ruby/object:User 
attributes:
updated_at: 2011-01-04 21:12:04
firstname: Bob
lastname: Smith
id: "15"
group_id: "2"
created_at: 2010-11-26 12:54:45

用户数组如何按“姓氏”排序?我已经尝试了几种不同的方法,但是没有运气。试图按数组内的对象属性进行排序使我感到困惑。另外,我不理解如何在查询中使用:order来做到这一点(如何:不是对Group而是对每个组的Users进行订购)?

也许我没有正确提及对象的名称(“用户”)?似乎这应该可行,因为它会产生“无方法”错误(如果在不使用!的情况下使用“sort_by”,则会产生动态常量赋值错误):
 users.sort_by! {|User| User.lastname}

谢谢你的帮助。

最佳答案

我找到了一种从here起作用的方法。我不知道“&”符号在做什么-也许这是“对象”的简称,因为在我的情况下,“:lastname”是组成数组的对象的属性。

users = users.sort_by &:lastname

注意:我不明白为什么会破坏性版本不起作用。它产生一个“未定义的方法sort_by!”。对于#”错误:
users.sort_by! &:lastname

关于ruby-on-rails - 如何通过对象的属性对对象数组进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4610843/

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