【发布时间】:2012-09-18 02:24:57
【问题描述】:
任何人都可以帮助我处理 XML 模板渲染和 send_data 吗?
我有一个控制器:
def show
@calculation = Calculation.find(params[:id])
respond_to do |format|
format.html # show.html.erb
format.json { render json: @calculation }
format.xml {send_data( :partial=>show.xml.erb, :filename => "my_file.xml" ) }
format.pdf { render :format=>false}
end
end
但我有很多“堆栈级别太深”的错误
如果我使用
{send_data( @calculation, :filename => "my_file.xml" ) }
我得到 XML 文件,但不是来自我的模板...
编辑:我有办法!
format.xml do
stream = render_to_string(:template=>"calculations/show" )
send_data(stream, :type=>"text/xml",:filename => "test.xml")
end
一切正常!
【问题讨论】:
-
你能发布你的整个跟踪吗?
-
CalculationsController 中的 SystemStackError #show stack level too deep Rails.root: C:/RubyStack-3.2.5-0/examplexml Application Trace |框架跟踪 | Full Trace actionpack (3.2.5) lib/action_dispatch/middleware/reloader.rb:70
-
我可以在我的 Chrome 中得到结果:format.xml { render :format=>false} 但只有屏幕,而不是要下载的文件
-
嘿 Dmitry,考虑发布您的问题并将其标记为解决方案。
-
@Dmitry - 如果您想将解决方案概括为您自己的答案,我将删除我的答案。 (请参阅 meta.stackexchange.com/questions/90263/… 详细说明为什么这样做会有所帮助。)谢谢!
标签: ruby-on-rails ruby send