Rails 3 помогает создавать простой канал RSS - PullRequest
0 голосов
/ 25 апреля 2011

Я хочу создать простой канал RSS / Atom.

В фиде должен быть указан максимум 20 конкурентов.

Название каждого konkurrancer должно быть konkurrancer.name

Ссылка на RSS-канал должна быть konkurrancer.tracking, которая является URL-адресом

Это мой строитель:

atom_feed :language => 'en-US' do |feed|
  feed.title @title
  feed.updated @updated

  @news_items.each do |item|
    next if item.updated_at.blank?
 for konkurrancer in @news_items

    feed.entry  do |entry|
      entry.tracking
      entry.title item.title
      entry.content item.content, :type => 'html'

      # the strftime is needed to work with Google Reader.
      entry.updated(item.updated_at.strftime("%Y-%m-%dT%H:%M:%SZ")) 
end
      end
    end
  end

Я вижу эту ошибку:

ArgumentError in Konkurrancers#feed

Showing C:/Rails/konkurranceportalen/app/views/konkurrancers/feed.atom.builder where line #9 raised:

wrong number of arguments (0 for 1)

Extracted source (around line #9):

6:     next if item.updated_at.blank?
7:  for konkurrancer in @news_items
8: 
9:     feed.entry  do |entry|
10:       entry.tracking
11:       entry.title item.title
12:       entry.content item.content, :type => 'html'

Моя модель:

class Konkurrancer < ActiveRecord::Base
validates_presence_of :name, :tracking, :banner1, :banner2, :kategori_id, :udtraekkes, :tid, :vaerdi, 
end

Ответы [ 2 ]

0 голосов
/ 25 апреля 2011

fl00r имел правильный указатель на вашу проблему. Базовый пример:

atom_feed do |feed|
  feed.title "Title"
  feed.updated @articles.first.created_at

  @articles.each do |article|
    feed.entry article do |entry|
      entry.title article.titl
      entry.content article.body, :type => 'html'

      entry.author do |author|
        author.name article.author
      end
    end
  end
end

Я недавно писал об этом, полное руководство (с кодом) здесь: http://www.communityguides.eu/articles/14

0 голосов
/ 25 апреля 2011

вы должны передать объект вашему entry методу:

http://apidock.com/rails/ActionView/Helpers/AtomFeedHelper/AtomFeedBuilder/entry

entry(record, options = {}) public

feed.entry(konkurrancer) например

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...