【问题标题】:Trying to use PDFKit but dont know where to initialize尝试使用 PDFKit 但不知道在哪里初始化
【发布时间】:2015-09-16 08:56:10
【问题描述】:

在使用 Prawn 遇到困难后,我决定使用 PDFKit。为此,我点击了以下链接:

Rails 3 + PDFKit: How to convert a view to PDF?

问题是我的 ruby​​ on rails 应用程序很不寻常,因为它似乎没有遵循通常的结构。在链接中,它说将以下内容放在初始化程序中:

require 'pdfkit'
middleware.use PDFKit::Middleware

PDFKit.configure do |config|
  config.wkhtmltopdf = 'windows_path_to_wkhtmltopdf'
end

我会把这个放在哪里?我有一个 app.rb 文件,我尝试将其放入,但出现以下错误:

undefined method `use' for [[Sass::Plugin::Rack, [], nil]]:Array

堆栈跟踪指向该行:

middleware.use PDFKit::Middleware

【问题讨论】:

  • 您的 rails 应用没有config/initializers 文件夹?
  • 我的 config 文件夹有一个 deploy(production.rb 和 staging.rb)和 recipes(base.rb、nginx.rb 和 rbenv.rb)文件夹以及 app.rb、boot.rb, deploy.rb、environments.yaml、settings.yaml 和 warble.rb。如果这有助于澄清,我会使用 Sinatra 和 Padrino。
  • 那你为什么用rails标记你的问题?

标签: ruby-on-rails ruby pdfkit


【解决方案1】:

非 Rails 机架应用

在 config.ru 中

require 'pdfkit' 
use PDFKit::Middleware

来自documentation

我假设您使用的是 config.ru 设置

【讨论】:

  • 我实际上已经尝试过了,但出现以下错误:#!/usr/bin/env rackup # encoding: utf-8 require File.expand_path("../config/boot.rb", __FILE__) sessioned = Rack::Session::Pool.new(Padrino.application, {key: 'ib', path: '/', expire_after: 300#, #httponly: true, #secure: true }) run sessioned require 'pdfkit' use PDFKit::Middleware 我收到此错误undefined local variable or method config' for InternetBanking:Class`
  • 对不起。我是先复制代码。错误如下。道歉。在添加 cmets 时无用。第一个块是我的 config.ru 代码
  • 好吧,这看起来不像是 pdfkit 相关的,只是一个不同的错误。您应该基于此来编辑您的问题,或者可能更好,因为它不相关询问有关该错误的新问题,以及导致错误的代码。
  • 谢谢。对不起。继承的应用程序及其组成非常奇怪,似乎不符合在线示例,因此很难获得任何示例。会按照你的要求去做,希望能得到更多的好运#
【解决方案2】:

我有一个使用 WickedPDF 的应用程序,我只需要在那里放置

gem 'wkhtmltopdf-binary'
gem 'wicked_pdf'

然后您可以简单地使用应用程序中的WickedPdf 对象。我不确定您的应用程序是如何布局的,因为它似乎没有使用捆绑程序。

【讨论】:

  • 好的,正如我从 cmets 看到的,这个应用程序实际上使用的是 Sinatra,而不是 Rails。由于我从未使用过 Sinatra,因此我不确定如何将 gem 正确地捆绑到 app.rb 文件中。
猜你喜欢
  • 2023-03-10
  • 2021-05-31
  • 1970-01-01
  • 2014-04-27
  • 2015-06-27
  • 1970-01-01
  • 1970-01-01
  • 2023-02-04
  • 2022-06-13
相关资源
最近更新 更多