Рендеринг HTML-контента в фиде Atom с помощью Rails Помощник atom_feed - PullRequest
3 голосов
/ 11 апреля 2011

У меня есть некоторые проблемы с (довольно недокументированным) помощником atom_feed.

Я бы хотел сделать что-то вроде этого:

for blogpost in @blogposts
  feed.entry(blogpost) do |entry|
    entry.title(blogpost.title)
    entry.content(render :partial => '...', :object => blogpost), :type => 'html')
  end
end 

Но, похоже, это не такработать, и я понятия не имею, как визуализировать HTML вместо некоторого встроенного текста!

Давайте создадим пример:

entry.content (<div style=" ... "> + article.body + </div> + <div style=" ... "> + <img src=" + article.img.url + ..... )

Написание и стилизация содержимого непосредственно в index.atom.builderдействительно раздражает.

Разве нет способа визуализировать html-частичное в этом контексте?

Может ли кто-нибудь мне помочь.

Ответы [ 2 ]

0 голосов
/ 16 февраля 2012

Это похоже на старую ошибку.Лучшее решение, которое я нашел, - сделать копию частичного с расширениями .atom.erb.Например,

_inner_slider.html.erb стал _inner_slider.atom.erb

Это потому, что Rails ищет определенный формат.

Это решение не является СУХИМЫМ, и другие альтернативы приветствуются.

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

Я сделал это недавно и поместил свои выводы в пост, см. Здесь: http://www.communityguides.eu/articles/14

Довольно простая версия была бы такой, есть еще ссылка:

Приложение / просмотров / статьи / index.atom.builder

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
...