2011-06-30 10 views
5

Tôi có một mô hình có:CarrierWave URL Hình ảnh

mount_uploader :image, ImageUploader 

Khi tải lên một hình ảnh tôi muốn lấy một số chiều rộng, chiều cao và một số dữ liệu EXIF ​​từ các hình ảnh. Trong một trước khi lọc tôi kêu gọi self.image.url nhưng điều này sẽ trở lại một cái gì đó như:

/uploads/tmp/20110630-1316-10507-7899/emerica_wildinthestreets.jpg

Vấn đề là khi tôi cố gắng để mở hình ảnh này sử dụng:

image = MiniMagick::Image.open(self.image.url) 

tôi nhận được "Không có tập tin hoặc thư mục - /uploads/tmp/20110630-1312-10507-6638/emerica_wildinthestreets.jpg". Có vẻ như hình ảnh đã được di chuyển từ thư mục tmp đến vị trí cuối cùng nhưng self.image.url không phản ánh thay đổi này.

Tôi cũng đã thử phương pháp này theo phương pháp after_save nhưng kết quả giống nhau. Bất kỳ ý tưởng?

Trả lời

5

Hóa ra tôi cần phải thêm "# {Rails.root.to_s}/public /" để self.image.url

+4

Một giải pháp chính xác hơn sẽ là self.image.path –