使用prawnto_2 gem加载图像时,RAILS_ROOT不再有效

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

在可能的情况下,我已经将我的旧插件分类为有利于gem,包括用这个漂亮的新prawnto_2gem替换旧的prawnto插件。

大多数事情似乎很好,但我不能像以前一样加载图像。 我的PDF视图中的代码是

pdf.image open("#{RAILS_ROOT}/public/images/logo.png") 

但是我收到以下错误

 uninitialized constant ActionView::CompiledTemplates::RAILS_ROOT 

我意识到图像文件的位置会随着我使用资源而改变,并且图像不再存储在公共文件夹中。

RAILS_ROOT位于全局命名空间中,因此您必须使用

 ::RAILS_ROOT 

但是这已被弃用,因此请更好地使用

 ::Rails.root 

要附加到此的路径,您可以使用它,这也适用于…… 其他操作系统

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