Ruby on rails 加载带有prawnto_2 gem的图像时,RAILS_ROOT不再有效

Ruby on rails 加载带有prawnto_2 gem的图像时,RAILS_ROOT不再有效,ruby-on-rails,prawn,prawnto,Ruby On Rails,Prawn,Prawnto,我正在将我的应用程序从Rails 3.0升级到Rails 3.1 在可能的情况下,我将我的旧插件放在gems上,这包括用这个漂亮闪亮的新gem替换旧的prawnto插件 大多数事情看起来都很好,但我无法像以前那样加载图像。我的PDF视图中的代码是 pdf.image open("#{RAILS_ROOT}/public/images/logo.png") 但是我得到了以下错误 uninitialized constant ActionView::CompiledTemplates::RAILS

我正在将我的应用程序从Rails 3.0升级到Rails 3.1

在可能的情况下,我将我的旧插件放在gems上,这包括用这个漂亮闪亮的新gem替换旧的prawnto插件

大多数事情看起来都很好,但我无法像以前那样加载图像。我的PDF视图中的代码是

pdf.image open("#{RAILS_ROOT}/public/images/logo.png")
但是我得到了以下错误

uninitialized constant ActionView::CompiledTemplates::RAILS_ROOT

我意识到,当我使用资产时,图像文件的位置将发生变化,并且图像不再存储在公用文件夹中。

RAILS\u ROOT
位于全局命名空间中,因此您必须使用

::RAILS_ROOT
但是,这是不推荐的,因此更好地使用

::Rails.root
若要将路径附加到此文件,您可以使用此文件,它也适用于…呃。。。其他操作系统

::Rails.root.join('public','images','logo.png')