Pi *_*rse 5 ruby mysql arrays ruby-on-rails ruby-on-rails-3
我的ruby文件中有一个查询:
@mastertest = connection.execute("select code_ver,date from mastertest")
我打印查询的结果如下:
@mastertest.each do |row|
  puts row[0] : row[1]
end
这将打印所有code_ver和'日期',如下所示
2.0 : 2012/12/10
3.1 : 2012/11/03
2.5 : 2012/07/08
1.8 : 2012/12/11
2.5 : 2012/03/01
现在我想基于我对这个数组进行排序code_ver,但问题是ruby并不认为这是一个数组,它说它是一些mysql2类型.
我该如何进一步处理?我想要将这个东西转换为二维数组,或者我想根据它对它进行排序row[0].
您正在获取MySQL结果集对象,@mastertest结果集不是数组.
如果你正在使用mysql2,那么你应该有一个Mysql2::Result,Enumerable所以它有一个to_a方法:
@mastertest.to_a.sort { ... }
如果您正在使用mysqlgem,那么您应该拥有一个Mysql::Result并且您必须@mastertest手动转换为数组:
a = [ ]
@mastertest.each { |r| a.push(...) }
a.sort { ... }
或者你可以简单地让数据库进行排序:
@mastertest = connection.execute('select code_ver, date from mastertest order by code_ver')
| 归档时间: | 
 | 
| 查看次数: | 4642 次 | 
| 最近记录: |