ruby-on-rails – 在Rails中将页面加载到内存中
发布时间:2020-12-17 02:26:48 所属栏目:百科 来源:网络整理
导读:我的rails应用程序在加载/ reports / generate_report时生成 XML. 在单独的页面上,我想将此XML读入变量并将其保存到数据库中. 我怎样才能做到这一点?我可以以某种方式将/reports/generate_report.xml URI的响应流式传输到变量中吗?或者是否有更好的方法来
我的rails应用程序在加载/ reports / generate_report时生成
XML.
在单独的页面上,我想将此XML读入变量并将其保存到数据库中. 我怎样才能做到这一点?我可以以某种方式将/reports/generate_report.xml URI的响应流式传输到变量中吗?或者是否有更好的方法来实现它,因为XML是由同一个Web应用程序生成的? 这是我的generate_report动作: class ReportsController < ApplicationController def generate_report respond_to do |format| @products = Product.all format.xml { render :layout => false } end end end 这是我想写的动作: class AnotherController < ApplicationController def archive_current @output = # get XML output produced by /reports/generate_report # save @output to the database respond_to do |format| format.html # inform the user of success or failure end end end 解决:我的解决方案(感谢MladenJablanovi?): @output = render_to_string(:file => 'reports/generate_report.xml.builder') 我在模型类中使用以下代码来完成相同的任务,因为render_to_string是(idiotically)ActionController :: Base的受保护方法: av = ActionView::Base.new(Rails::Configuration.new.view_path) @output = av.render(:file => "reports/generate_report.xml.builder") 解决方法
也许您可以将XML呈现逻辑提取到同一控制器(可能是私有控制器)中的单独方法,这将使用
render_to_string 将XML呈现为字符串,并从generate_report和archive_current操作中调用它.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |