And*_*vey 3 rss ruby-on-rails atom-feed
在Rails 3.2应用程序中,我有一个带有:caption字段的Photo模型,并使用Carrierwave来处理图像文件.
我正在尝试创建包含图像的原子提要.这样做的正确方法是什么?
目前我有
#views/photos/index.atom.builder
atom_feed do |feed|
feed.title "Photos"
@photos.each do |photo|
feed.entry photo do |entry|
entry.title photo.title
entry.summary photo.caption
entry.image image_path(photo.file.url(:large))
entry.author do |author|
author.name photo.user.name
end
end
end
end
Run Code Online (Sandbox Code Playgroud)
虽然这确实在feed标记中添加了图像标记,但我认为这可能不是正确的语法?
<entry>
...
<image>http://path/to/image.jpg</image>
...
</entry>
Run Code Online (Sandbox Code Playgroud)
还有我见过以下语法的地方
<entry>
<content type="image/jpg" src="/path/to/image.png" />
</entry>
Run Code Online (Sandbox Code Playgroud)
如果有更多知识的人能告诉我,我会很感激:
我找到了自己问题的答案.
对于Atom订阅源,可以将图像添加到img标记内的内容中.
或者,它可以作为附件添加:
feed.entry photo do |entry|
entry.link href: photo.file.url(:large), rel:"enclosure", type:"image/jpeg"
end
Run Code Online (Sandbox Code Playgroud)
最后我从Atom切换到RSS feed(这是我使用的特殊情况,因为我需要稍后操作feed并发现RSS更容易做到这一点).
同样,图像可以作为img添加到内容标签内的RSS中.
或者可以添加为附件:
@photos.each do |photo|
xml.item do
xml.media :content, url: photo.file.url(:fullpage), type:"image/jpeg", height:770, width:770
xml.media :thumbnail, url: photo.file.url(:thumb), height: 50, width:50
end
end
Run Code Online (Sandbox Code Playgroud)
为了构建这样的RSS提要,可能需要在RSS提要的头部添加一些属性.
我看起来像这样
xml.instruct! :xml, version: "1.0"
xml.rss version: "2.0", "xmlns:media" => "http://search.yahoo.com/mrss/", "xmlns:atom" => "http://www.w3.org/2005/Atom" do
...
Run Code Online (Sandbox Code Playgroud)