當我加載/ reports/generate_report時,我的rails應用程序會生成XML。在Rails中將頁面加載到內存中
在單獨的頁面上,我想將此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
解決:我的解決方案(感謝姆拉登Jablanović):
@output = render_to_string(:file => 'reports/generate_report.xml.builder')
我在模型類中使用了下面的代碼來完成中國語,因爲render_to_string相同的任務是(白癡)的ActionController ::基地的保護方法:
av = ActionView::Base.new(Rails::Configuration.new.view_path)
@output = av.render(:file => "reports/generate_report.xml.builder")
只是好奇你爲什麼試圖將你的數據轉換成XML然後再保存到數據庫。 – Salil 2010-04-03 06:56:11
@Salil:我想將先前版本的數據存儲在數據庫中,有點像版本控制。 – titaniumdecoy 2010-04-03 22:44:50