gpt4 book ai didi

ruby-on-rails - Rails 3 Atom 提要

转载 作者:行者123 更新时间:2023-12-02 00:23:36 26 4
gpt4 key购买 nike

尝试在 Rails 3 中创建 Atom 提要。当我刷新浏览器时,我看到的是基本 XML,而不是我正在寻找的 Atom 提要。

class PostsController < ApplicationController
# GET /posts
# GET /posts.xml
def index
@posts = Post.all

respond_to do |format|
format.html # index.html.erb
format.xml { render :xml => @posts }
format.atom
end
end

index.atom.builder

atom_feed do |feed|
feed.title "twoconsortium feed"
@posts.each do |post|
feed.entry(post) do |entry|
entry.title post.title
entry.content post.text
end
end
end

localhost:3000/posts.atom 看起来像这样:

<?xml version="1.0" encoding="UTF-8"?>
<feed xml:lang="en-US" xmlns="http://www.w3.org/2005/Atom">
<id>tag:localhost,2005:/posts</id>
<link rel="alternate" type="text/html" href="http://localhost:3000"/>
<link rel="self" type="application/atom+xml" href="http://localhost:3000/posts.atom"/>
<title>my feed</title>
<entry>
<id>tag:localhost,2005:Post/1</id>
<published>2012-03-27T18:26:13Z</published>
<updated>2012-03-27T18:26:13Z</updated>
<link rel="alternate" type="text/html" href="http://localhost:3000/posts/1"/>
<title>First post</title>
<content>good stuff</content>
</entry>
<entry>
<id>tag:localhost,2005:Post/2</id>
<published>2012-03-27T19:51:18Z</published>
<updated>2012-03-27T19:51:18Z</updated>
<link rel="alternate" type="text/html" href="http://localhost:3000/posts/2"/>
<title>Second post</title>
<content>its that second post type stuff</content>
</entry>
</feed>

最佳答案

我遇到了同样的问题。

  • 首先确保 .builder 文件生成的 XML 是有效的 Atom XML。您可以将其粘贴到 W3c feed validator,它会告诉您它是否有问题。我粘贴了上面的 XML,似乎有一些问题。一旦您编辑 .builder 文件并使生成的 XML 通过。使用有效的 atom 提要刷新您的页面。
  • 如果您仍然看到纯 XML,请在浏览器的调试器中查看 响应 header 您为提要获得了什么。具体来说,您是否获得 Content-Type header ?浏览器需要它是某种 xmlish mime 类型,例如“application/xml”或更好的“application/atom+xml”。如果您没有获得该 Content-Type,或者由于某种原因获得了错误的内容类型,您可以直接在 Controller 中的格式调用中覆盖来自 headers 哈希的响应 header 。只需添加一个带有典型 Atom mime 类型字符串的代码块:

  • respond_to do |format|
    format.html # index.html.erb
    format.xml { render :xml => @posts }
    format.atom { headers["Content-Type"] = 'application/atom+xml; charset=utf-8'}
    end

    关于ruby-on-rails - Rails 3 Atom 提要,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9899182/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com