質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.51%
RSS

RSS(Really Simple Syndication)はブログのエントリやニュースの見出し、標準のフォーマットの音声やビデオなどを発行するために使われるウェブフィードのフォーマットの集合体です。

Ruby on Rails 4

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

Q&A

解決済

1回答

2914閲覧

【Ruby on Rails × Feedjira】複数サイトを指定して記事タイトルとリンクを表示させる方法

T.N.

総合スコア22

RSS

RSS(Really Simple Syndication)はブログのエントリやニュースの見出し、標準のフォーマットの音声やビデオなどを発行するために使われるウェブフィードのフォーマットの集合体です。

Ruby on Rails 4

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

0グッド

0クリップ

投稿2015/12/08 16:41

編集2015/12/08 17:01

Ruby on Railsを独学しているのですが、
不明点があるので質問させてください。

■やりたいこと
Ruby on Rails, feedjiraを用いて、
下記2つのサイトから記事のタイトル(リンク付)を引っ張りたいと考えています。
http://www.fashionsnap.com/rss.xml
https://medium.com/feed/fashion-tech-news

■現状
以下のとおりコントローラ、ビューファイルを作成しました。
対象サイトが1つだけだからか英語記事は思ったとおりに引っ張ってこれるのですが、
対象サイトが複数ある日本語記事についてはスクショのとおり、
対象サイト内の記事のタイトルとURLではなく、対象サイトのタイトルとURLが引っ張られてしまいます。

原因と解決方法をご教示いただけますと幸いです。
よろしくお願いします。

【コントローラ】

class IndexController < ApplicationController require 'feedjira' def index # 日本語記事 # 複数のURLを登録 url_box = [ "http://www.fashionsnap.com/rss.xml", "https://medium.com/feed/fashion-tech-news", ] # 登録したURLをFeedとして配列に格納 feed_box = Array.new url_box.each do |url_ja| feed_box.push(Feedjira::Feed.fetch_and_parse url_ja) end # 対象のURLから記事要素のみを抽出 @entries_ja = feed_box.entries # 英語記事 # スクレイピング対象のURLを指定 feed_en = Feedjira::Feed.fetch_and_parse 'http://fashion.bodi.me/feed/' # 対象のURLから記事要素のみを抽出 @entries_en = feed_en.entries end end

【ビューファイル】

<div id="internal"> <h3>国内記事</h3> <% @entries_ja.each do |entry_ja| %> <%= link_to entry_ja.title, entry_ja.url, :target=>["_blank"] %><hr /> <% end %> </div> <div id="external"> <h3>海外記事</h3> <% @entries_en.each do |entry_en| %> <%= link_to entry_en.title, entry_en.url, :target=>["_blank"] %><hr /> <% end %> </div> <div id="sidebar">- サイト内検索 アーカイブ(月別) </div>

イメージ説明

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

以下のとおりViewファイルでeachをネストすることで解決しました。

Controller(抜粋)

1@feed_box_ja = Array.new 2url_box_ja.each do |url_ja| 3 @feed_box_ja.push(Feedjira::Feed.fetch_and_parse url_ja) 4end

View

1<div id="sidebar">- 2 <h3>サイト内検索, アーカイブ(月別)</h3> 3 </div> 4 5 <div id="internal"> 6 <div id="country"> 7 <h3>国内記事</h3> 8 </div> 9 <% @feed_box_ja.each do |feed_ja| %> 10 <% feed_ja.entries.each do |entry_ja| %> 11 <div id="article"> 12 <%= link_to entry_ja.title.truncate(35), entry_ja.url, :target=>["_blank"] %><br /> 13 <%= feed_ja.title %> - <%= entry_ja.published %> 14 </div> 15 <% end %> 16 <% end %> 17 </div> 18 19 <div id="external"> 20 <div id="country">-- 21 <h3>海外記事</h3> 22 </div> 23 <% @feed_box_en.each do |feed_en| %> 24 <% feed_en.entries.each do |entry_en| %> 25 <div id="article"> 26 <%= link_to entry_en.title.truncate(60), entry_en.url, :target=>["_blank"] %><br /> 27 <%= feed_en.title %> - <%= entry_en.published %> 28 </div> 29 <% end %> 30<% end %> 31</div>

投稿2015/12/22 19:31

T.N.

総合スコア22

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.51%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問