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

时间:2012-02-08 11:54:18

标签: ruby-on-rails prawn prawnto

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

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

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

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

但是我收到以下错误

uninitialized constant ActionView::CompiledTemplates::RAILS_ROOT

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

1 个答案:

答案 0 :(得分:28)

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

::RAILS_ROOT

然而,这已被弃用,因此最好使用

::Rails.root

要为此附加路径,您可以使用此功能,这也适用于...... erm ... 其他操作系统

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