我正在尝试为特价商品生成原子Feed。
控制器工作正常,因此链接http://localhost:3000/offers.atom
呈现一些xml。
我在http://localhost:3000/offers
页面中有一个优惠列表。对于每个优惠,我没有显示页面因为原始产品在其他网站上。所以在http://localhost:3000/offers
页面中我只列出了优惠,但如果我点击特定优惠,我会被重定向到另一个网站。
我的问题是生成atom xml文件:
#app/views/offers/index.atom.builder
atom_feed do |feed|
feed.title "title"
feed.updated @offers.maximum(:updated_at)
@offers.each do |offer|
feed.entry(offer, url: offer.product_link) do |entry|
entry.image image_tag(offer.img_link)
entry.title offer.desc
entry.description offer.desc
entry.price offer.price
entry.special_price offer.special_price
entry.saving offer.saving
end
end
end
validator在我的xml文件中发现了一些错误。 这是我的xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<feed xml:lang="en-US" xmlns="http://www.w3.org/2005/Atom">
<id>tag:localhost,2005:/offers</id>
<link rel="alternate" type="text/html" href="http://localhost:3000"/>
<link rel="self" type="application/atom+xml" href="http://localhost:3000/offers.atom"/>
<title>title</title>
<updated>2014-04-08T12:33:24Z</updated>
<entry>
<id>tag:localhost,2005:Offer/116</id>
<published>2014-04-08T12:33:24Z</published>
<updated>2014-04-08T12:33:24Z</updated>
<link rel="alternate" type="text/html" href="http://e-commerce.centroservizirovigo.com/Detail.aspx?ProductId=2101845"/>
<img><img alt="738750a1" src="http://e-commerce.centroservizirovigo.com//Images/1480/738750A1.jpg" /></img>
<title>Rilegatrice termica T400 GBC - 400 fogli - 4400411</title>
<description>Rilegatrice termica T400 GBC - 400 fogli - 4400411</description>
<price>167.7</price>
<special_price>124.0</special_price>
<saving>26.1</saving>
</entry>
</feed>
但我不知道要解决。
答案 0 :(得分:1)
错误似乎很明显:
Undefined entry element: img
Undefined entry element: description
Undefined entry element: price
...
这些是您使用过的未被Atom规范定义的元素。它们不会出现在您的文档中,除非您将它们放在单独的命名空间中(如Extensions from Non-Atom Vocabularies)。
Missing entry element: author
Missing textual content
Atom规范需要一组最小字段(bare minimum atom tags required for feed validity)。您需要将它们包含在有效的Feed中。