Partage
  • Partager sur Facebook
  • Partager sur Twitter

"push" en Ruby (on rails) qui ne marche pas

Sujet résolu
    3 juillet 2019 à 12:32:10

    Bonjour,

    j'essaye de réaliser un lecteur de flux RSS avec le langage Ruby on rails. C'est la première fois que j'utilise ce langage donc je ne suis pas encore à l'aise avec toutes les fonctionnalités et les termes utilisés

    voici mon code :

    def news
    
      require 'rss'
      require 'open-uri'
    
      @rss_results = []
      @rss = RSS::Parser.parse(open('https://www.lemonde.fr/sport/rss_full.xml').read, false).items[0..2]
    
    
      @rss.each do |result|
        result = { title: result.title, date: result.pubDate, link: result.link, description: result.description }
    
        @rss_result.push(result)
      end
    
    end


    Ce bout de code est censé récupérer le flux RSS de la rubrique sport du Monde pour les 3 derniers articles, pour ensuite récupérer seulement leurs titres, dates, liens et descriptions pour chaque article, pour ensuite ajouter tout ça dans une liste (rss_results)

    Sauf que le navigateur me renvoie : undefined method `push' for nil:NilClass 

    Je ne sais pas d'où vient l'erreur et encore moins comment la corriger, c'est pourquoi je crée ce sujet.

    Merci d'avance


    • Partager sur Facebook
    • Partager sur Twitter
      3 juillet 2019 à 15:21:55

      Salut,

      Il faut lire l'erreur. Undefined method `push' for nil:NilClass, cela signifie que @rss_result vaut nil. Bizarre, tu l'as initialisé à []... Sauf que non, tu as initialisé @rss_results avec un s. De plus, plutôt que d'utiliser each, tu peux utiliser map (je te laisse aller voir comment elle fonctionne).

      • Partager sur Facebook
      • Partager sur Twitter
      Tutoriel Ruby - Bon tutoriel C - Tutoriel SDL 2 - Python avancé - Faîtes un zeste, devenez des zesteurs

      "push" en Ruby (on rails) qui ne marche pas

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown