ruby-on-rails – 使用prawnto_2 gem加载图像时,RAILS_ROOT不再有效

我正在将我的应用程序从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

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

解决方法

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

但是这是不推荐的,所以更好的使用

::Rails.root

为了附加一个路径,你可以使用它,这也适用于… erm …其他操作系统

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

相关文章

以下代码导致我的问题: class Foo def initialize(n=0) @n = n end attr_accessor :n d...
这是我的spec文件,当为上下文添加测试“而不是可单独更新用户余额”时,我得到以下错误. require 's...
我有一个拦截器:DevelopmentMailInterceptor和一个启动拦截器的inititializer setup_mail.rb. 但我想将...
例如,如果我有YAML文件 en: questions: new: 'New Question' other: recent: ...
我听说在RSpec中避免它,let,let !,指定,之前和主题是最佳做法. 关于让,让!之前,如果不使用这些,我该如...
我在Rails中使用MongoDB和mongo_mapper gem,项目足够大.有什么办法可以将数据从Mongoid迁移到 Postgres...