RAILS_ROOT больше не действителен при загрузке изображений с гемом prawnto_2 - PullRequest
9 голосов
/ 08 февраля 2012

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

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

В большинстве случаев все в порядке, но я не могу загрузить изображения, как раньше. Код в моем представлении PDF -

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

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

uninitialized constant ActionView::CompiledTemplates::RAILS_ROOT

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

1 Ответ

28 голосов
/ 08 февраля 2012

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

::RAILS_ROOT

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

::Rails.root

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

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