2012-02-24 41 views
0

對於新手問題抱歉,但對Ruby和Mongo仍然很新。 不是100%確定我錯過了什麼,但是如何從下面的json結果中的「url」中返回 ?從MongoMapper獲取唯一的關鍵值to_json結果

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

所以我想是這樣,如果我做了

puts url_var 

它應該只是顯示www.google.com

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字符串和值是空的。

當然我必須缺少真正的基本這裏

回答

1

好東西,我認爲Surl是你的一個模型,其中有至少這些領域url_keyurl,所以訪問您不必轉換的網址結果json,然後獲取密鑰,但您可以直接訪問它。

Surl.all返回一個數組(檢查mongo映射器文檔),如果你想單個結果使用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讀了,瞭解的結果和差異直接訪問網址。

+0

這是我回來的錯誤:/ 430f處的NoMethodError 未定義的方法url爲零:NilClass – daemonza 2012-02-24 08:28:38

+0

不真正瞭解Surl.find_by_url_key。 find_by_url_key從何而來? – daemonza 2012-02-24 08:33:25

+0

AAH確定我看到find_by_url_key是一個動態查詢 – daemonza 2012-02-24 08:35:13