我正在努力使用ruby的mysql gem并准备语句.
我希望最终得到的结果与对结果的each_hash相同,但在prepares语句中也不支持.
所以我带着这可怕的烂摊子来了.
stmt = @db.prepare("SELECT mat_id, name, qty FROM materials WHERE mat_id = ? ")
#those 3 lines hurt my eyes
res = stmt.execute(params[:id])
mat_id, name, qty = res.bind_result(Integer, String, Integer).fetch
@material = [mat_id: mat_id, name: name, qty: qty]
必须有一种更好的方法来获取结果并获得一组哈希值.
一个更好的mysql gem可能是一个有效的答案. ORM不是.
解决方法:
看到评论,我仍然会发布续集链接作为答案:
您根本不需要使用Sequel的模型部分.实际上,这些文档有一整节专门讨论SQL迷们:
http://sequel.rubyforge.org/rdoc/files/doc/sql_rdoc.html
示例查询:
DB.fetch("SELECT * FROM albums WHERE name LIKE ?", 'A%') do |row|
puts row[:name]
end
原文地址:https://codeday.me/bug/20190620/1243586.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。