首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Rails 5中生成PDF并发送响应?

如何在Rails 5中生成PDF并发送响应?
EN

Stack Overflow用户
提问于 2017-10-30 19:09:51
回答 1查看 804关注 0票数 0

我使用rails 5grape gem来构建我的应用程序。现在我需要生成一个PDF并使用grape端点发送回响应。我正在使用PDF和wkhtmltopdf-binary生成wicked_pdf。但是我面临着undefined method 'render_to_string'的问题。我尝试了各种方法来解决这个问题。但是找不到任何解决方案。

下面是我的代码片段

API终结点:

代码语言:javascript
复制
module Endpoints
  class GeneratePdf < Grape::API
    get do
      users = User.all # I want this users list in my PDF
      pdf = WickedPdf.new.pdf_from_string(render_to_string('users/index.html.erb')) # placed in app/views/users/pdf.html.erb
      # some code here for send pdf back to response
    end
  end
end

Gemfile:

代码语言:javascript
复制
gem 'wicked_pdf'
gem 'wkhtmltopdf-binary'

配置>初始化器> mime_types.rb

代码语言:javascript
复制
Mime::Type.register "application/pdf", :pdf
EN

回答 1

Stack Overflow用户

发布于 2017-10-31 03:05:13

Grape::API,与典型的Rails控制器不同,没有可以在其上调用的render_to_string方法。您应该能够将其替换为类似如下的内容:

代码语言:javascript
复制
require 'erb'
binding_copy = binding
binding_copy.local_variable_set(users: User.all)
template = File.open(Rails.root.join('app/views/users/index.html.erb))
string = ERB.new(template).result(binding_copy)
pdf = WickedPdf.new.pdf_from_string(string)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47013792

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档