Получение только ключевого значения из результата MongoMapper to_json - PullRequest
0 голосов
/ 24 февраля 2012

Извините за вопрос новичка, но все еще очень плохо знаком с Руби и Монго. Не уверен на 100%, что мне не хватает, но как мне вернуть только значение из "url" в следующем json результате?

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

Так что я хочу что-то вроде, если я сделаю

puts url_var 

должно отображаться только www.google.com

Код MongoMapper для получения URl от Mongo

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 Ответ

1 голос
/ 24 февраля 2012

Хорошо, я предполагаю, что Surl - ваша модель, которая имеет по крайней мере эти поля url_key и url, поэтому для доступа к URL-адресу вам не нужно преобразовывать результат в json, а затем извлекатьключ, но вы можете получить к нему доступ напрямую.

Surl.all возвращает массив (проверьте документы mongo mapper), если вы хотите один результат, используйте Surl.find_by_url_key(urlkey).Теперь вы можете получить прямой доступ к URL-адресу, используя 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.html и http://mongomapper.com/documentation/plugins/querying.html,, чтобы понять результаты и различия.

...