Ruby SQL:未定义的方法“[]”
我想我很愚蠢。
rc = Mysql.new('CENSORED_HOST','username','password','db')
release = rc.query('select * from wp_ribcage_releases where release_id = 1 limit 1')
puts release["release_title"]
rc.close
我收到以下错误:
ribcage-connect.rb:17: undefined method `[]' for #<Mysql::Result:0x1011ee900> (NoMethodError)
我对此很陌生,并且我确信我基本上在做一些非常愚蠢的事情。多谢。
编辑
下面的好心人让我更进一步,现在我有了:
rc = Mysql.new('server','user','pword','db')
release = rc.query('select * from wp_ribcage_releases where release_id = 1 limit 1')
row = release.fetch_row
puts row['release_title']
rc.close
现在我得到了错误:
ribcage-connect.rb:12:in `[]': can't convert String into Integer (TypeError)
from ribcage-connect.rb:12
I think I'm being stupid.
rc = Mysql.new('CENSORED_HOST','username','password','db')
release = rc.query('select * from wp_ribcage_releases where release_id = 1 limit 1')
puts release["release_title"]
rc.close
And I am getting the following error:
ribcage-connect.rb:17: undefined method `[]' for #<Mysql::Result:0x1011ee900> (NoMethodError)
I'm new to this and I am sure I am basically doing something very stupid. Thanks a lot.
EDIT
The kind people below have got me a but further, now I have:
rc = Mysql.new('server','user','pword','db')
release = rc.query('select * from wp_ribcage_releases where release_id = 1 limit 1')
row = release.fetch_row
puts row['release_title']
rc.close
And now I get the error:
ribcage-connect.rb:12:in `[]': can't convert String into Integer (TypeError)
from ribcage-connect.rb:12
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
该错误意味着您无法直接索引(使用 [])Result 对象。
它应该是(对于这个单行情况):
有关更多信息:转到此处
That error means you cannot index directly (use []) the Result object.
It should instead be (for this single row case):
For more information: go here
rc.query(...)
返回一个可以迭代的结果集。您无法直接访问它。看看:
http://www.kitebird.com/articles/ruby-mysql .html#TOC_7
由于您只有一行(由于 LIMIT 1),您可以执行以下操作:
如果您有多行:
the
rc.query(...)
returns a result set you can iterate. You can't directly access it.Look at:
http://www.kitebird.com/articles/ruby-mysql.html#TOC_7
Since you have only one row (because of LIMIT 1) you can do:
If you have multiple rows: