gpt4 book ai didi

xml - RXML 模板生成器的 Rails 3.1 替代品

转载 作者:数据小太阳 更新时间:2023-10-29 02:02:26 25 4
gpt4 key购买 nike

在 Rails 3.1 中处理自定义 XML 响应的正确方法是什么?

在 Rails 2 中,我在我的 Controller 中执行了以下操作:

# GET the blog as a feed
def feed
@blog = Blog.find(:first, :id => params[:id]])

@blog_id = @blog.id
@blog_posts = BlogPost.find(:all, :conditions => ["blog_id = ? AND is_complete = ?", @blog_id, true], :order => "blog_posts.created_at DESC", :limit => 15)
render :action => :feed, :layout => false
end

然后是 View 中的 RXML 构建器模板,'feed.rxml':

xml.instruct! :xml, :version=>"1.0"
xml.rss(:version=>"2.0") {
xml.channel {
xml.title(@blog.title)
xml.link(url_for(:only_path => false))

xml.description(@blog.subtitle)
xml.language('en-us')
for blog_post in @blog_posts
xml.item do
xml.title(blog_post.title || '')
xml.link(blog_named_link(blog_post))
xml.description(blog_post.body)
xml.tag(blog_post.tag_string)
xml.posted_by(blog_post.posted_by.name)
end
end
}
}

Rails 3.1 已经取消了 RXML 模板处理程序,但我似乎找不到关于我们应该用什么来替换它的文档。

最佳答案

首先将 respond_to 部分添加到您的操作方法

respond_to do |format|
format.xml
end

或者在 Controller 类定义中添加respond_to :html, :xml

然后将模板文件重命名为feed.xml.builder

关于xml - RXML 模板生成器的 Rails 3.1 替代品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8205714/

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