Я очень новичок в Ruby на рельсах. Я делаю веб-приложение, в котором я должен получать RSS-каналы с новостных сайтов, которые я сделал с помощью gem feedzirra. Я думал об извлечении изображений из каждого URL-адреса канала и публикации его в своем приложении. Но я не знаю, какой драгоценный камень будет подходящим только для извлечения изображений с разных сайтов. Я думал об использовании нокогири или opengraph, но я не знаю, как это сделать. Может кто-нибудь, пожалуйста, проведет меня. спасибо
Я хочу сделать что-то вроде этого:
<% @feed = Feedzirra::Feed.fetch_and_parse("http://feeds.bbci.co.uk/news/rss.xml") %>
<% @feed.inspect %>
<% @entries = @feed.entries %>
<% for i in 0..9 %>
<br>
<b><u><%= @entries[i].title %></u></b>
</br>
<br>
**<%= get image from @entries[i].url %> \\ how can i do this ?**
</br>
<% end %>
Это может быть достигнуто с помощью помощника ActionView image_tag
, который в этом случае создаст тэг html img
для внешнего URL:
...
<% @entries.each do |entry| %>
<%= entry.title %>
<%= image_tag(entry.url) %>
<% end %>
Кроме того, пожалуйста, учтите более рубиновый способ итерации через элементы массива, которые я представил выше.
Если вы хотите перебрать первые 10 элементов, а не весь массив (как в вашем примере), вы можете сделать это следующим образом:
<% @entries[0..9].each do |entry| %>
<%= entry.title %>
<%= image_tag(entry.url) %>
<% end %>
Редактировать:
Похоже, вы можете получить img-тег из резюме резюме с помощью Nokogiri, не проверили его самостоятельно, но вы должны проверить это сообщение в блоге: http://verboselogging.com/2009/05/24/rss-fun-with-feedzirra
image_tag
. Я предположил, что entry.url хранит прямую ссылку на изображение, это единственный способ заставить его работать таким образом (например, <%= image_tag 'http://example.com/pic.jpg' %>
).