RAILS_ROOT больше не действителен при загрузке изображений с гемом prawnto_2

Я нахожусь в процессе обновления моего приложения с Rails 3.0 до Rails 3.1.

Я спрятал свои старые плагины в пользу драгоценных камней, где это возможно, и это включает в себя замену старого плагина prawnto этим замечательным новым блестящим гемом prawnto_2.

Большинство вещей кажется нормальным, но я не могу загрузить изображения, как раньше. Код в моем представлении PDF

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

но я получаю следующую ошибку

uninitialized constant ActionView::CompiledTemplates::RAILS_ROOT

Я понимаю, что расположение файла изображения изменится, так как я использую ресурсы, и изображение больше не сохраняется в общей папке.

1 ответ

Решение

RAILS_ROOT находится в глобальном пространстве имен, поэтому вы должны использовать

::RAILS_ROOT

Однако это не рекомендуется, так что лучше использовать

::Rails.root

Чтобы добавить путь к этому, вы можете использовать это, которое также работает на... эээ... других операционных системах

::Rails.root.join('public','images','logo.png')
Другие вопросы по тегам