Rails 3.1替换RXML模板生成器
发布时间:2020-12-17 02:53:20 所属栏目:百科 来源:网络整理
导读:在Rails 3.1中处理自定义 XML响应的正确方法是什么? 在Rails 2中,我在我的控制器中执行了以下操作: # GET the blog as a feeddef feed @blog = Blog.find(:first,:id = params[:id]]) @blog_id = @blog.id @blog_posts = BlogPost.find(:all,:conditions =
在Rails 3.1中处理自定义
XML响应的正确方法是什么?
在Rails 2中,我在我的控制器中执行了以下操作: # 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 然后是视图中的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 或者只是在控制器类定义中添加respond_to:html,:xml 然后将模板文件重命名为feed.xml.builder (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |