`
cpccai
  • 浏览: 26422 次
社区版块
存档分类
最新评论

Ruby对象数组按属性排序

    博客分类:
  • Ruby
阅读更多

在Rails里,我们可以用sort_by方法对一个Ruby对象数组按照某个属性进行排序,如:

ruby 代码
  1. User.find(:all).sort_by {|u| u.name.downcase}   

这等效于

ruby 代码
  1. @users = User.find(:all)       
  2. @users.sort! { |a,b| a.name.downcase < => b.name.downcase }    

sort!后面的!使得排序结果直接存入数组@users中,如果不想排序破坏@users数组,直接用sort即可。


参考文献:Ruby: Sort an array of objects by an attribute


http://cpccai.iteye.com

分享到:
评论

相关推荐

    Ruby-RedisObjects直接将Redis类型映射成Ruby对象

    **Ruby-RedisObjects:直接将Redis类型映射成Ruby对象** Ruby-RedisObjects是一个非常实用的库,它允许开发者在Ruby应用程序中直接操作Redis数据结构,就像操作Ruby对象一样。这个框架是Ruby社区对ORM(对象关系...

    Programming-Ruby-1.9源代码

    - 集合操作如查找、排序、合并、过滤等,源代码会提供各种实例,帮助理解Ruby的数组和哈希操作的强大。 6. **文件和I/O** - 文件读写操作,如`File.open`,以及流处理,源代码将展示如何进行文件操作。 - 标准...

    Ruby语言中文教程

    这些文件可能涵盖了各种不同的主题,比如类的继承、模块的混入、块和Proc对象的使用,或者是Ruby的元编程特性,如方法定义、动态属性等。 例如,"E3.8-1.rb"可能涉及的是数组和集合操作,你将学习如何创建和操作...

    Ruby编程语言算法集

    类定义了对象的属性和行为,而模块则允许代码的分类和混入,避免了命名冲突。 Ruby中的控制结构包括条件语句(如if/else、case)和循环(如for、while、until、each)。此外,Ruby还支持异常处理(如begin/rescue/...

    Ruby语言教程&案例&相关项目资源分享.docx

    GitHub上的Ruby开源项目按星标数量排序,可以发现最受欢迎的项目。例如: - **Rails**: 一个基于Ruby的Web应用开发框架,遵循MVC(模型-视图-控制器)架构模式。 - **Sinatra**: 轻量级Web应用框架,适用于小型应用...

    Ruby on Rail 基础知识 一张纸

    通过本文的学习,我们可以了解到Ruby on Rails的一些基础知识点,包括各种字符串处理方法、正则表达式方法、时间处理方法、数组处理方法、验证方法以及枚举混合方法,同时也了解了Rails项目的默认目录结构。这些基础...

    ruby初级中文教程与实例

    2. 数组操作:学习数组的增删改查、排序、遍历等技巧。 3. 哈希操作:掌握哈希的创建、访问、修改等方法,以及如何遍历键值对。 4. 文件和目录操作:学习如何读写文件、管理目录等实用技能。 5. 类和对象的创建:...

    Ruby程序设计(简洁清新的教程)

    - **面向对象**:Ruby是一种完全面向对象的语言,一切都被视为对象。 - **动态性**:Ruby是一种动态类型语言,这意味着可以在运行时修改类和对象。 - **元编程能力**:Ruby支持强大的元编程技术,允许程序员在运行时...

    Ruby Book

    - **块**: Ruby中的匿名函数,可用于循环、排序等。 - **Proc对象**: 封装的块,可以在不同上下文中重用。 ##### 类与对象 - **定义类**: 使用class关键字定义类。 - **方法与变量**: 类可以包含方法和变量。 - **...

    data-structures-ruby:Ruby中的数据结构

    - 堆常用于优先队列的实现,Ruby没有内置堆类型,但可以使用数组和排序方法模拟堆操作。 在“data-structures-ruby”项目中,开发者创建了一个gem来演示这些数据结构的实现和用法,这对于学习和理解Ruby中的数据...

    ruby简单笔记

    在Ruby中,所有事物都被视为对象,包括数字和字符串。与某些语言如Tcl只支持字符串不同,Ruby提供了丰富的数据类型支持,如整型(int),浮点型(double),字符型(char)等,但这些类型最终都可以被视为字符串进行处理,...

    Addison.Wesley.Ruby.Phrasebook.Sep.2008

    通过实例化类,可以创建具有特定属性和行为的对象,并通过方法调用来执行相应的操作。 **5. Working with Pipes** 这部分内容涵盖了如何在Ruby程序中使用管道(pipe)进行进程间的通信。管道是一种特殊的文件描述符...

    sort_by_field

    排序方式字段 此插件提供按字段对数组和可枚举对象进行排序。 默认情况下,它应用于数组。 它可以包含在任何可枚举的类中。 它自动处理 nil 值和排序字符串而不区分大小写。用法 根据每个条目的 name 属性返回的值对...

    疯狂java讲义目录 电子版 pdf

    - **对象的产生和使用**:通过 `new` 关键字创建对象,并通过对象调用其方法和属性。 - **对象、引用和指针**:Java 使用引用而不是指针来引用对象。 - **对象的 this 引用**:`this` 关键字可以用来引用当前对象...

    films_list:这是用于测试的电影列表

    4. **面向对象编程**:Ruby是面向对象的语言,所以电影列表可能被表示为一个类(如`Movie`),包含属性(如电影名称、导演、年份等)和方法(如显示电影详情、搜索电影等)。 5. **数据持久化**:为了保存电影列表...

    疯狂JAVA讲义

    1.2.2 Ruby简介和优势 4 1.2.3 Python的简介和优势 5 1.3 Java程序运行机制 5 1.3.1 高级语言的运行机制 6 1.3.2 Java程序的运行机制和JVM 6 1.4 开发Java的准备 7 1.4.1 安装JDK 8 学生提问:不是说JVM是...

Global site tag (gtag.js) - Google Analytics