Я ищу, чтобы удалить ключи из хэша, которые имеют значение nil
. article
- класс хранения каждого товара, а метод attributes
хранит статью как хэш.Удалить нулевые значения из hash
Ожидаемый результат:
{"articles":[{"results":[{"author":null,"title":"Former bar manager jailed for preying on homeless 14-year-old girl","summary":"<p><img src=\"http://images.theage.com.au/2015/08/24/6790912/Thumbnail999662740gisd08image.related.thumbnail.320x214.gj68pg.png1440386418031.jpg-90x60.jpg\" width=\"90\" height=\"60\" style=\"float:left;margin:4px;border:0px\"/></p>A man who preyed on a 14-year-old girl he came across living on the streets of Wodonga has been jailed for nine months.","images":null,"source":null,"date":"Mon, 24 Aug 2015 03:20:21 +0000","guid":"<guid isPermaLink=\"false\">gj68pg</guid>","link":"http://www.theage.com.au/victoria/former-bar-manager-jailed-for-preying-on-homeless-14yearold-girl-20150824-gj68pg.html","section":null,"item_type":null,"updated_date":null,"created_date":null,"material_type_facet":null,"abstract":null,"byline":null,"kicker":null}]}]}
Глядя удалить нулевые значения из приведенного выше вывода.
def attributes
hash = {
"author" => @author,
"title" => @title,
"summary" => @summary,
"images" => @images,
"source" => @source,
"date" => @date
}
hash = {}
count = 0
article.attributes.each do |key,value|
if value == nil
hash[count] = article.attributes.delete(key)
count += 1
end
end
hash.to_json
В результате, как показано ниже:
{"0":null,"1":null,"2":null,"3":null,"4":null,"5":null,"6":null,"7":null,"8":null,"9":null,"10":null}
Пожалуйста, убедитесь, что код размещен мчит и завершается. Я попытался запустить его и вообще не вижу выхода. Кроме того, данные, которые вы упомянули как «ожидаемый результат», похоже, не являются частью кода, может быть, добавить минимальный пример для воспроизведения проблемы? – FriendFX
FriendFX - код разлагается на несколько классов, и это будет невозможно. Второй фрагмент кода - это проблема. Код не будет запущен, потому что не определен класс статьи. Я пытаюсь удалить ключи без значений из article.attributes (хранение статей). – coder05
Посмотрите на [Как создать минимальный, полный и проверенный пример] (https://stackoverflow.com/help/mcve) для получения некоторых рекомендаций. Кажется, что ваш код касается только хэша ('article.attributes'?), И вы хотите удалить некоторые элементы, поэтому, возможно, измените свой пример таким образом, чтобы внешних зависимостей не было. Кроме того, я думаю, что «конец» отсутствует. – FriendFX