`

给Ruby 不同数组对象添加不同排序方法

阅读更多
有些时候我们需要给类的一个示例对象添加方法如下:

 class Person
 end 

 pedro = Person.new
 peter = Person.new

 # inject a method in the instances
 def pedro.hello_world; puts "Hola Mundo"; end

 def peter.hello_world; puts "Hello World"; end 

 pedro.hello_world #=> Hola Mundo
 peter.hello_world #=> Hello World


利用这个,就可以同样类型的User,根据不一样的数组添加不同的排序方法了
  employees  = User.find(:conditions => "career= employee")
  def employees.sort_by_attribute(sym)
    sort {|x, y| x.send(sym) <=> y.send(sym)}
  end

   manager = User.find(:conditions => "career = manager")
 def employees.sort_by_attribute(sym)
    sort {|x, y| y.send(sym) <=> x.send(sym)}
  end
分享到:
评论

相关推荐

    ruby数组

    在Ruby数组中,元素可以通过索引来访问和操作,索引通常从0开始。 ### 数组创建 Ruby提供多种创建数组的方法。最常见的是通过方括号`[]`来创建,例如: ```ruby arr = [1, 2, 3, "four", true] # 创建包含不同类型...

    Programming-Ruby-1.9源代码

    - 动态特性:Ruby的动态性体现在可以在运行时添加或修改方法、属性,这部分在源代码中会有体现。 3. **模块(Module)** - 模块用于组织代码,可以包含常量、类方法和实例方法,也可以实现类的多重继承(mixin)...

    Ruby语言中文教程

    例如,"E3.8-1.rb"可能涉及的是数组和集合操作,你将学习如何创建和操作数组,包括添加、删除元素,遍历数组,以及使用内置的排序和查找方法。"E4.4-1.rb"和"E4.5-1.rb"可能涉及到Ruby的字符串操作和正则表达式,这...

    ruby参考速查--ruby常用类参考

    5. `方法用于向数组末尾添加元素,等同于`push`方法。 6. `compact` 和 `compact!` 分别用于创建无`nil`元素的新数组或直接移除当前数组中的`nil`元素。 7. `delete_if` 通过传入的代码块删除满足条件的元素。 8. `...

    Ruby on Rail 基础知识 一张纸

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

    js 数组实现一个类似ruby的迭代器

    2. 在迭代中引用原来的对象或直接改变数组的值:在迭代函数中,除了可以访问数组元素的值外,还可以引用原来的数组对象以及当前元素的索引位置。这样,我们就可以在迭代过程中直接修改原数组的值。但是,如果在迭代...

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

    `yield`用于将控制权传递给传入的方法中的代码块: ```ruby def print_items(items) items.each do |item| yield(item) end end print_items([1, 2, 3]) { |item| puts item } ``` #### 六、表达式 Ruby中的...

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

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

    Ruby 基本语言介绍

    Ruby 支持不同类型的变量: - **局部变量**(或伪变量):以小写字母或下划线开头,例如 `var_var`。 - **全局变量**:以 `$` 开头,例如 `$var`。 - **类变量**:在类中定义,以 `@@` 开头,例如 `@@var`。 - **...

    Addison.Wesley.Ruby.Phrasebook.Sep.2008

    读者可以了解到如何创建、访问和操作这些集合,比如添加元素、删除元素、排序、遍历等。同时,也会涉及到一些高级用法,如利用块(block)进行迭代处理。 **4. Working with Objects** 在面向对象编程(OOP)中,对象...

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

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

    ruby_data_structures:Ruby中的数据结构和算法实践

    Ruby数组支持多种操作,如添加元素(`push`、`unshift`)、删除元素(`pop`、`shift`)、查找元素(`index`)以及合并(`concat`)等。 二、哈希(Hash) 哈希是一种键值对的集合,它允许通过唯一的键来访问和存储...

    基于Ruby实现pagerank算法.zip

    Ruby是一种面向对象的、动态的编程语言,它的简洁性和强大的库支持使得它成为实现算法的理想选择。要基于Ruby实现Pagerank,我们首先需要解析网页链接数据,这可能涉及到HTML解析库如Nokogiri。接着,构建一个邻接...

    ruby-practice-exercises:在Codecademy的Learn Ruby课程中完成的所有练习的集合

    练习方法和排序-编写函数以对数字数组进行排序/排序。 电影之夜 练习散列和符号-构建一个显示,添加,更新和删除电影分级的程序。 虚拟电脑 练习对象,类和继承之类的OOP概念(1)-创建一个虚拟计算机,该计算机可以...

    segment_tree:段树数据结构的Ruby实现,用于存储间隔。 它允许查询哪些存储段包含给定点

    在内部,它不是一棵树-它只是一个排序的数组,而查询树只是一个简单的二进制搜索(在0.1.0之前的版本中,它是作为实树实现的,但是这些树消耗了大量内存)。 安装 将此行添加到您的应用程序的Gemfile中: gem '...

    99problems:Ruby 中的 99 个编程问题

    这需要掌握 Ruby 的数组和哈希数据结构,以及相关的操作方法,如 `map`、`each`、`select`、`reduce` 等。 3. **字符串处理**:字符串操作也是常见问题,包括拼接、分割、替换和格式化。熟悉 `String` 类的方法,如...

    疯狂JAVA讲义

    6.2.1 打印对象和toString方法 170 6.2.2 ==和equals比较运算符 172 6.3 类成员 175 6.3.1 理解类成员 175 6.3.2 单例(Singleton)类 176 6.4 final修饰符 177 6.4.1 final变量 177 6.4.2 final方法 181 ...

Global site tag (gtag.js) - Google Analytics