1

ブログ投稿にカテゴリを追加するための正しい構文を取得できないようです。

index.atom.ビルダー

atom_feed language: 'en-US', schema_date: 2013 do |feed|
  feed.title @title
  feed.updated @updated

  @posts.each do |post|
    next if post.updated_at.blank?
    feed.entry post, published: post.published_at do |entry|
      entry.title post.title
      entry.summary post.summary.blank? ? truncate("#{strip_tags(post.content)}", length: 140, separator: ' ') : strip_tags(post.summary)
      entry.content post.content, type: 'html'
      entry.author do |author|
        author.name post.user ? post.user.name : post.author
      end
      post.categories.map {|c| c.name}.each do |t|
        entry.category term: t, label: t, scheme: 'http://mywebsite.com'
      end
    end # end feed.entry
  end # end @posts.each
end

私自身のすべての質問に答えました。これを打った人には、検証済みのアトム フィードが提供されます。デフォルト値と値を使用したくない場合にのみpublished:、ブロックに値を渡す必要があります。http://validator.w3.org/feed/でフィードを確認して、自分のフィードを確認してください。|entry|created_atupdated_at

4

1 に答える 1

1

これが私が最終的に使用したものです。これにより、実際には 2 つの異なるモデルがフィードに取り込まれます。

ビュー/エントリ/feed.atom.builder

atom_feed language: 'en-US', schema_date: 2013 do |feed|
  feed.title @title
  feed.updated @updated

  @entries.each do |e|
    next if e.updated_at.blank?
    feed.entry e do |entry|
      entry.title e.name
      entry.summary e.summary.blank? ? truncate("#{strip_tags(e.content)}", length: 140, separator: ' ') : strip_tags(e.summary), type: 'html'
      entry.content e.content, type: 'html'
      entry.author do |author|
        author.name e.user.name
      end
      e.categories.map {|c| c.name}.each do |t|
        entry.category term: t, label: t, scheme: root_url
      end
      entry.category term: 'blog', label: 'blog', scheme: root_url
    end # end feed.entry
  end # end @entries.each

  @designs.each do |d|
    next if d.updated_at.blank?
    feed.entry d do |entry|
      entry.title d.name
      entry.summary truncate("#{strip_tags(d.content)}", length: 140, separator: ' '), type: 'html'
      entry.content d.content, type: 'html'
      entry.author do |author|
        author.name User.first.name
      end
      d.categories.map {|c| c.name}.each do |t|
        entry.category term: t, label: t, scheme: root_url
      end
      entry.category term: 'design', label: 'design', scheme: root_url
    end # end feed.entry
  end # end @designs.each
end
于 2013-12-11T19:03:13.323 に答える