【问题标题】:rake db:migrate - uninitialized constant WickedPdfrake db:migrate - 未初始化的常量 WickedPdf
【发布时间】:2013-04-20 15:03:11
【问题描述】:

运行 rake db:migrate 时出现错误:uninitialized constant WickedPdf

我已按照此页面https://github.com/mileszs/wicked_pdf/issues/53 上列出的说明了解如何安装 WickedPdf。

我可以从命令行运行 wkhtmltopdf 二进制文件,我的 wicked_pdf.rb 看起来像这样:

WickedPdf.config = {
  :exe_path => '/usr/local/bin/wkhtmltopdf'
}

这是我的宝石清单供参考:

$ bundle exec gem list

*** LOCAL GEMS ***

actionmailer (2.3.14)
actionpack (2.3.14)
activerecord (2.3.14)
activeresource (2.3.14)
activesupport (2.3.14)
brightbox (2.3.9)
bundler (1.3.5)
capistrano (2.14.2)
highline (1.6.16)
hoe (3.5.2)
hpricot (0.8.2)
htmldoc (0.2.3)
json (1.7.7)
macaddr (1.6.1)
mysql (2.9.1)
net-scp (1.1.0)
net-sftp (2.1.1)
net-ssh (2.6.7)
net-ssh-gateway (1.2.0)
paginator (1.1.1)
rack (1.1.6)
rails (2.3.14)
rake (10.0.4)
rdoc (4.0.1)
RedCloth (4.2.9)
rmagick (2.13.1)
systemu (2.5.2)
uuid (2.0.2)
will_paginate (2.3.16)
wkhtmltopdf-binary (0.9.9.1)

谢谢

【问题讨论】:

  • 您是否尝试在迁移中创建 PDF?您是否在该迁移文件中添加了“需要 wicked_pdf”?
  • @JesseWolgamott 据我所知不,这不是我的应用程序,所以我不能确定。我认为迁移只是为了数据库?
  • 您访问的链接未指定如何将 WickedPdf 与 Rake 任务一起使用。您可能将WickedPdf 正确添加到您的Rails 应用程序中,但这并不一定意味着您的自定义Rake 任务知道WickedPdf。试试下面@alfonso 的解决方案,它应该可以工作。

标签: ruby-on-rails rake wicked-pdf


【解决方案1】:

如果您只是在运行 rake db:migrate 时遇到问题,您可以尝试使用 defined? 包装初始化程序:

if defined?(WickedPdf)
  WickedPdf.config = {
    :exe_path => '/usr/local/bin/wkhtmltopdf'
  }
end

【讨论】:

  • 谢谢,但不是也意味着在应用程序中运行相关代码时它不会工作吗?如果 db:migrate 无法运行?
  • @eb_dev 如果应用程序已经在运行,则意味着 WickedPdf 已在该环境中加载,因此此 hack 将起作用。不过你应该试试看。
猜你喜欢
  • 1970-01-01
  • 2015-12-27
  • 2011-09-16
  • 2020-11-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-16
  • 2011-06-02
相关资源
最近更新 更多