如果我模拟你问题中的数据结构,我会得到:
@l2_mastertest = { '3.1.4' => 7, '1.2.3' => 8 }
=> {"3.1.4"=>7, "1.2.3"=>8}
@l2_mastertest.each_with_index { |row2,index| p row2,index }
["3.1.4", 7]
0
["1.2.3", 8]
1
所以像这样的结构
row2[0][ /(\d+\.\d+)/ ]
与例如相同。
"3.1.4"[ /(\d+\.\d+)/ ]
编辑:删除了我以前的“答案”,因为实际上
"3.1.4"[ /(\d+\.\d+)/ ] => "3.1"
,这在Ruby中很好(我今天学到了一些东西:-)。其他一些东西(可能在未显示的代码中)使@l2_mastertest散列的行为与预期不符。
这可能是一个数据库/模型问题,正如评论人士所建议的那样,
row[0]
不包含字符串。
相反,我建议
SELECT * FROM builds;
这是有风险的,因为您依赖于数据库以特定的顺序返回列。您应该更改它以获取所需的列数据,例如。
SELECT version, result, build_id FROM builds;
这样您就可以确定以后的处理是针对您认为的列进行的。简单地重新构建或传输数据库可能会改变RDBMS在
SELECT *
并使先前工作的代码中断。