ruby-on-rails - Ruby:用另一个数组对数组进行排序

标签 ruby-on-rails ruby arrays object activerecord

<分区>

o1, o2, o3, o4 activerecord 对象与

  • o1.kind = "att2"
  • o2.kind = "att3"
  • o3.kind = "att4"
  • o4.kind = "att1"

a = [o1, o2, o3, o4]

b = ['att1', 'att3', 'att4', 'att2']

我需要对 ab 进行排序,以便 a 中的新顺序变为:

a = [o4, o2, o3, o1]

我试过了

a.sort_by do |element|
  b.index(element)
end

但是如何按种类排序呢?

最佳答案

您需要element.kind的索引,而不是element

a.sort_by do |element|
  b.index(element.kind)
end

关于ruby-on-rails - Ruby:用另一个数组对数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17997725/

相关文章:

ruby - 使用 Watir 获取表格的整个列文本

ruby-on-rails - 在简单的 ruby​​ 中从 Person 实例获取孙子

ruby-on-rails - 核心中的 find_by() 和 FinderMethods 中的 find_by() 有什么区别?

ruby-on-rails - 无法构建 native 扩展

javascript - 在 Javascript 中按值从数组中删除元素

arrays - 未排序数组二分查找的时间复杂度

javascript - 在 JavaScript 中为数组添加空格

Mac OS X 10.5.8 上 Rails 2.3.5 的 MySQL 绑定(bind)

ruby-on-rails - Ruby on Rails 应用程序的最佳 Web 服务器是什么?

ruby - 如何使用 ruby​​ 判断 FTP 文件是否存在?