Ruby 仅从MongoMapper将键值返回到_json结果

Ruby 仅从MongoMapper将键值返回到_json结果,ruby,mongodb,mongomapper,Ruby,Mongodb,Mongomapper,很抱歉问了个新手问题,但对Ruby和Mongo来说还是很陌生的。 不是100%确定我遗漏了什么,但是我如何才能得到价值呢 从以下json结果中的“url”开始 [{"url":"www.google.com"}] 所以我想要的东西就像我做了一个 puts url_var 它应该只显示www.google.com 从Mongo获取URl的MongoMapper代码 redirect_url = Surl.all(:url_key => "#{urlkey}") myjson = re

很抱歉问了个新手问题,但对Ruby和Mongo来说还是很陌生的。 不是100%确定我遗漏了什么,但是我如何才能得到价值呢 从以下json结果中的“url”开始

[{"url":"www.google.com"}]
所以我想要的东西就像我做了一个

puts url_var 
它应该只显示www.google.com

从Mongo获取URl的MongoMapper代码

redirect_url = Surl.all(:url_key => "#{urlkey}") 
myjson = redirect_url.to_json(:only => [:url])
puts redirect_url
给我

[{"url":"www.google.com"}]
如果我做了类似的事情

redirect_url.each do |key,value|
  puts key
  puts value
end
键仍然是完整的json字符串,值为空


当然,我这里肯定遗漏了一些非常基本的东西

好吧,我假设
Surl
是您的一个模型,它至少有这些字段
url\u key
url
,所以要访问url,您不必将结果转换为json然后提取到key,但您可以直接访问它

Surl.all
返回一个数组(检查mongo mapper文档),如果需要单个结果,请使用
Surl.find\u by\u url\u key(urlkey)
。现在,您可以使用
put redirect\u url.url

redirect_url = Surl.find_by_url_key(urlkey)
puts redirect_url.url # => "www.google.com"

请务必阅读和,以了解结果和差异。

这是我得到的错误:NoMethodError at/430f未定义的方法'url'for nil:nilclass没有真正理解Surl.find_by_url_键。“按url查找”键从何而来?啊,好吧,我看到“按url查找”键是一个动态查询。谢谢,我更改了您的重定向。按url查找键(:url\u key=>urlkey)重定向为重定向。按url查找键(urlkey)工作得很好:)