gpt4 book ai didi

ruby-on-rails - 在 Rails 3 中集成 Jasper

转载 作者:数据小太阳 更新时间:2023-10-29 06:55:08 26 4
gpt4 key购买 nike

我正在尝试将 rails 3 应用程序与 jasper 集成,遵循这个 wiki:

http://wiki.rubyonrails.org/rails/pages/HowtoIntegrateJasperReports

不过好像很多资料没有更新,自己弄起来很费劲。我还在 ruby-forum 上阅读了一个主题:http://www.ruby-forum.com/topic/139453解释了一些细节,但仍然无法正常工作。

我的第一个问题与 render_to_string 方法有关:当 Controller 方法运行时,我收到“模板丢失”错误:

这是方法:

def report
@customers = Customer.all
send_doc(render_to_string(:template => report_customers_path, :layout => false), '/pdfs', 'report.jasper', "customers", 'pdf')
end

虽然这看起来很简单,但我不明白为什么会这样。 render_to_stringlayout => false 应该让我得到该操作的字符串结果吗?我还尝试了 :action 而不是 :template,但效果相同。

如果任何对此集成有一定专业知识的人可以提供帮助...提前致谢,安德烈

最佳答案

我们实际上使用 jasperreports 来创建报告,并且最近升级到 Rails 3.0。要创建 xml,我们使用 xml.erb 模板。 Jasper 报告在单独的 glassfish 服务器中运行这是总体思路:

url = URI.parse(my_url_string)
dataxml = render_to_string(:template => my_template_name).gsub(/\n/, '')
params = {'type' => 'pdf', 'compiledTemplateURI' => my_jasper_file, 'data' => dataxml }
request = Net::HTTP::POST.new(url.request_uri)
request.set_form_data(params)
obj = Net::HTTP.new(url.host, url.port)
obj.read_timeout = my_timeout_setting
response = obj.start { |http| http.request(request) }
case response
when Net::HTTPOK
send_data(response.body, :filename => my_chosen_filename, :type => "application/pdf", :disposition => "inline")
else
raise "failed to generate report"
end

关于ruby-on-rails - 在 Rails 3 中集成 Jasper,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6389022/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com