2012-02-08 24 views
9

Tôi đang trong quá trình nâng cấp ứng dụng của mình từ Rails 3.0 lên Rails 3.1.RAILS_ROOT không còn hợp lệ khi tải hình ảnh bằng đá quý prawnto_2

Tôi đã binned các plugin cũ của tôi có lợi cho đá quý nếu có thể và bao gồm việc thay thế plugin cũ bằng đá quý này với đá quý prawnto_2 sáng bóng đẹp mắt này.

Hầu hết mọi thứ có vẻ ổn nhưng tôi không thể tải hình ảnh như trước đây. Mã theo quan điểm của tôi là PDF

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

nhưng tôi nhận được lỗi sau

uninitialized constant ActionView::CompiledTemplates::RAILS_ROOT 

Tôi nhận ra rằng vị trí của file ảnh sẽ thay đổi khi tôi sử dụng tài sản và hình ảnh không còn được lưu trữ trong thư mục công cộng.

Trả lời

28

RAILS_ROOT là trong không gian tên toàn cầu, vì vậy bạn phải sử dụng

::RAILS_ROOT 

Tuy nhiên này không được chấp, vì vậy sử dụng tốt hơn

::Rails.root 

Để thêm một đường dẫn đến điều này, bạn có thể sử dụng, cũng hoạt động trên ... erm ... hệ điều hành khác

::Rails.root.join('public','images','logo.png') 
Các vấn đề liên quan