在我的Rails应用程序中,我有一个操作,它使用XML Builder模板(rxml
)模板和render_to_string
创建XML文档。 XML文档被转发到后端服务器。如何在使用render_to_string后正常呈现视图?
创建XML文档后,我想向浏览器发送一个普通的HTML响应,但不知何故Rails正在记住第一次拨打render_to_string
。
例如:因为它看起来为show.rxml
- Rails可以找不到默认视图
show.html.erb
。 - 简单地将
render 'mycontroller/show.html.erb'
放在我的动作句柄的底部会使Rails找到模板,但浏览器不起作用,因为响应标头的内容类型为text/xml
。
有没有什么办法可以使用render_to_string
而不会“玷污”实际的浏览器响应?
编辑:看来,在Rails 2 erase_render_results
会做的伎俩,但在Rails 3它不再可用。
实际上`erase_render_results`只是设置一个标记为false并擦除response_body - 在render_to_string的源代码中,内容类型显式设置为nil。这似乎更可能是您遇到的问题是由于。 – 2011-01-13 21:30:10