听起来很奇怪,在我的本地版本中使用Prawn gem生成pdf的代码工作成功,而在线版本它只显示空的pdf页面。我也尝试在我的本地版本中将环境更改为“生产”,但仍然无法重现此问题。
我用来生成pdf的代码是:
write_attribute(:filepath, "/reports/#{self.publisher.email}/#{Time.now.to_s(:report_filename)}.#{self.format}")
Prawn::Document.generate(RAILS_ROOT + self.filepath) do |pdf|
titles = self.display_titles
items = self.display_items.map do |item|
titles.collect { |title| item[title.gsub(' ', '')].to_s }
end
pdf.table items, :border_style => :grid,
:row_colors => ["FFFFFF", "DDDDDD"],
:headers => titles,
:align => self.table_aligns
end
有人可以帮忙吗?
更新1
在本地版本中运行gem list prawn给了我这个:
*** LOCAL GEMS ***
prawn (0.8.4)
prawn-core (0.8.4)
prawn-layout (0.8.4)
prawn-security (0.8.4)
在网上运行时给了我:
*** REMOTE GEMS ***
prawn (0.8.4)
prawn-blank (0.0.1)
prawn-core (0.8.4)
prawn-fast-png (0.2.3)
prawn-flexible-table (0.1.2)
prawn-format (0.2.3)
prawn-graph (0.0.4)
prawn-js (0.7.1)
prawn-layout (0.8.4)
prawn-security (0.8.4)
prawn-svg (0.9.1.10)
prawn_commander (0.1.2)
prawn_rails (0.0.4)
prawnto (0.0.3)
这根本不是任何事情的线索吗?
答案 0 :(得分:0)
确保您在本地和生产中使用相同版本的praw。
gem list prawn --local
注意:如果您已在任一位置解压缩了宝石,则可能需要检查供应商目录。
服务器上的日志中是否显示任何错误?
另外,请仔细检查以确保您已在本地安装的所有prawn gem已解压缩到vendor目录中。如果有任何尚未解压缩的宝石,它们将在本地工作,因为丢失的宝石将从rubygems环境加载。
我强烈建议您使用Bundler,因为这有助于避免任何依赖项解决问题。
答案 1 :(得分:0)
正如朋友所指出的,Prawn不喜欢被冻虾。使用sudo安装gem以确保其正常工作。