我正在将应用程序升级到Rails 3.我已经决定使用
mysql2 gem.应用程序中有一些旧版代码可以进行如下调用:
results = ActiveRecord::Base.connection.execute(sql)
在2.3.x版本中,它使用
results.each_hash do |row| ...
但是使用gem MysqL2,结果是类型MysqL2 :: Result,它只有一个方法.检查文档,他们指定结果应该是字段名称上的哈希键.大!
当我使用rails控制台并实例化我自己的MysqL2 :: Client并在那里运行查询时,结果是一个哈希,这是我想要的.
在rails应用程序中,我认为最好使用ActiveRecord :: Base.connection,因为它已经使用database.yml中的选项实例化了.
注意,不幸的是,结果并不映射到模型,所以我不能使用它.
现在我做的是,例如:
result = ActiveRecord::Base.connection.execute(sql) field_index = result.fields.index("field") result.each do |row| row[field_index] end
这是丑陋的罪恶.
有没有人我可以得到它来返回哈希而不是数组?
解决方法
原文地址:https://www.jb51.cc/ruby/271114.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。