Единый канал RSS для нескольких ресурсов - PullRequest
0 голосов
/ 18 июня 2009

В моем приложении rails есть несколько ресурсов для генерации контента, таких как статьи, посты в блогах и т. Д.

Я могу создать RSS для каждого отдельного ресурса, но я не понимаю, как синхронизировать один канал RSS для этих нескольких каналов.

В настоящее время я настроил канал «Статьи» через FeedBurner, и даже в FeedBurner нет этой возможности объединять разные RSS одного и того же приложения в одно, чтобы пользователи могли подписаться на отдельные RSS (что я уже сделал) или только один основной канал, чтобы получить все обновления.

Я не могу найти никаких плагинов и не нашел никакого кода, гуглящего вокруг моего приложения на Rails ??

Ответы [ 3 ]

2 голосов
/ 18 июня 2009

FeedStitch позволяет вам «сшивать» несколько каналов вместе. Это не решает проблему с точки зрения Rails, но выполняет свою работу.

Я рекомендую помещать ваши корма в стежок подачи, а затем использовать устройство подачи с подачей стежка подачи.

1 голос
/ 18 июня 2009

Если вы хотите решить проблему со стороны Rails, это не так сложно. Создайте новое действие и извлеките записи, которые вы хотите отформатировать в качестве канала, и создайте канал.

# the action
def feed
  @articles = Article.all(:limit => 10)
  @posts = Post.all(:limit => 10)
  @items = @article + @posts

  respond_to do |format|
    format.html
    format.atom
  end
end

# the view
atom_feed do |feed|
  feed.title("Latest items")
  feed.updated(@items.first.try(:created_at))

  for item in @items
    feed.entry(item) do |entry|
      entry.title(item.title)
      entry.content(item.body, :type => 'html')
    end
  end
end

Конечно, ресурсы должны использовать один и тот же API, по крайней мере, для методов, которые вы хотите вызвать в контроллере. http://api.rubyonrails.org/classes/ActionView/Helpers/AtomFeedHelper.html#M001900

0 голосов
/ 18 июня 2009

Если вы согласны полагаться на внешние услуги для этого, вы можете использовать RSS Mix или Yahoo! Трубы:

www.rssmix.com /

pipes.yahoo.com / трубы /

...