Разбор подачи в рельсах - PullRequest
       15

Разбор подачи в рельсах

0 голосов
/ 05 октября 2010

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

Я пытаюсь проанализировать RSS-каналы с Times of India Главные новости .Кажется, проблема с первой ссылкой, я уверен, что ребята из 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}

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

Ждем вашей помощи и поддержки

Спасибо

Ответы [ 2 ]

0 голосов
/ 05 октября 2010

Вы можете использовать класс 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. Но вам решать, как вы с этим справитесь.

0 голосов
/ 05 октября 2010

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

...