从MongoMapper to_json结果中仅获取键值

时间:2012-02-24 07:30:32

标签: 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 = redirect_url.to_json(:only => [:url])
puts redirect_url

给了我

[{"url":"www.google.com"}]

如果我做的话

redirect_url.each do |key,value|
  puts key
  puts value
end

key仍然是完整的json字符串,值为空。

当然,我必须遗漏一些非常基本的东西

1 个答案:

答案 0 :(得分:1)

好的,我认为Surl是您的模型,至少包含这些字段url_keyurl,因此要访问该网址,您无需转换结果到json然后获取密钥,但你可以直接访问它。

Surl.all返回一个数组(检查mongo mapper文档),如果您想要使用单个结果Surl.find_by_url_key(urlkey)。现在,您可以使用puts redirect_url.url

直接访问该网址
redirect_url = Surl.find_by_url_key(urlkey)
puts redirect_url.url # => "www.google.com"

请务必阅读http://mongomapper.com/documentation/plugins/dynamic-querying.htmlhttp://mongomapper.com/documentation/plugins/querying.html,了解结果和差异。