2010-10-05 7 views
0

Я работаю над Ubuntu 10.04, и я использую feed-zirra для анализа RSS-каналов, и у меня есть база данных MySQL.Feed Parsing In Rails

Я пытаюсь разобрать RSS-каналы от Times of India Top Stories. Кажется, что проблема связана с первой ссылкой, я уверен, что ребята TOI скоро ее исправит. Но так или иначе, я не хочу сталкиваться с подобной ошибкой позже, поэтому поэтому я хочу спросить вас, ребята, как решить эту проблему.

Просто смотреть на это и особенно ищет ссылку

<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> 

Ссылку <link>/cwgarticleshow/6688747.cms</link>

Теперь, когда я нажимаю ссылку, по мнению .. его получения направляется http://localhost:3000/cwgarticleshow/6688747.cms вместо http://timesofindia.indiatimes.com/cwgarticleshow/6688747.cms

И ошибка, которую я получаю, -

**Routing Error** 

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

Как исправить этот тип ошибки?

Глядя вперед за вашу помощь и поддержку

Благодарности

ответ

0

Вам просто нужно предварять http://timesofindia.indiatimes.com к значению тега ссылки, и вы будете в порядке.

+0

Я новичок. Не могли бы вы сказать мне, как это можно достичь? Я не понял? – gkolan

0

Вы можете использовать класс URI. Вы можете, например, определить следующий метод:

require "uri" 

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

Он установит схему и часть хоста URL-адреса, если они еще не заполнены. Поэтому, если вы позвоните по обычной ссылке (например, http://foo/bar.cms), ничего не изменится.

И последнее: вы, вероятно, должны исключать место где-нибудь, когда метод #parse вызывает исключение InvalidURIError в случае недопустимого URI. Но это зависит от вас, как вы справитесь с этим.