2010-10-05 14 views
0

Je travaille sur Ubuntu 10.04 et j'utilise feed-zirra pour analyser les flux RSS et j'ai une base de données MySQL. J'essaie d'analyser les flux RSS à partir de Times of India Top StoriesAnalyse de flux dans les rails

Il semble y avoir un problème avec le premier lien, je suis sûr que les gars de TOI le corrigeront bientôt. Mais de toute façon, je ne veux pas faire face à une erreur similaire plus tard, c'est pourquoi je veux vous demander comment résoudre ce problème.

Il suffit de regarder cela et regarder surtout pour lien

<item> 
    <title>CWG: Abhinav Bindra, Gagan Narang win first Gold for India</title 
    <description>Abhinav Bindra and Gagan Narang on Tuesday bagged Gold for the men's 10 m air rifle pair's event, getting India its first gold in the 19th Commonwealth Games.</description> 
<link>/cwgarticleshow/6688747.cms</link> 
<guid>/cwgarticleshow/6688747.cms</guid> 
<pubDate>Tue, 05 Oct 2010 04:57:46 GMT</pubDate> 
</item> 

Le lien est <link>/cwgarticleshow/6688747.cms</link>

Maintenant, quand je clique sur le lien, dans la vue .. ça devient routé vers http://localhost:3000/cwgarticleshow/6688747.cms au lieu de http://timesofindia.indiatimes.com/cwgarticleshow/6688747.cms

Et l'erreur que je reçois est

**Routing Error** 

No route matches "/cwgarticleshow/6688747.cms" with {:method=>:get} 

Comment corriger ce type d'erreur?

attente de votre aide et le soutien

Merci

Répondre

0

Vous avez juste besoin de préfixer http://timesofindia.indiatimes.com à la valeur de balise de lien et vous serez ok.

+0

Je suis un débutant. Pourriez-vous me dire comment cela peut-il être réalisé? Je n'ai pas compris? – gkolan

0

Vous pouvez utiliser la classe URI. Vous pouvez, par exemple, définir la méthode suivante

require "uri" 

def repair_link(feed_link) 
    uri = URI.parse(feed_link) 
    uri.scheme ||= "http" 
    uri.host ||= "timesofindia.indiatimes.com" 
    uri.to_s 
end 

Il va définir le schéma et la partie hôte de l'URL s'ils ne sont pas déjà remplis. Donc, si vous l'appelez pour un lien normal (comme http://foo/bar.cms) alors rien ne sera changé.

Et dernière chose - vous devriez probablement attraper une exception quelque part car la méthode #parse déclenche une exception InvalidURIError en cas d'URI invalide. Mais c'est à vous de voir comment vous allez y faire face.