2009-10-15 28 views
18

Tôi đã thêm 2000 ảnh vào bảng hình ảnh của mình và tôi đang sử dụng plugin Paperclip để tạo các ngón tay cái. Tôi tự hỏi nếu có một cách để đi qua cơ sở dữ liệu và thêm một yếu tố :styles.Làm cách nào để thay đổi kích thước hình ảnh Kẹp giấy sau khi đã thêm cơ sở dữ liệu vào cơ sở dữ liệu?

Ví dụ, khi tôi đã thêm những hình ảnh tôi đã có sau trong mô hình của tôi:

has_attached_file :image, :styles => { :medium => "300x300>", :thumb => "100x100>" } 

Tuy nhiên, bây giờ tôi muốn thêm một thuộc tính :large và có nó áp dụng cho tất cả các hình ảnh đó đã có trong bàn của tôi. Một cái gì đó như:

has_attached_file :image, :styles => { :large => "800x800>", :medium => "300x300>", :thumb => "100x100>" } 

Điều này có thể? Hay tôi phải thêm lại tất cả 2000 bức ảnh?

Trả lời

42

Nếu Kẹp giấy được cài đặt như là một plugin, bạn có thể làm điều này:

rake paperclip:refresh:thumbnails CLASS=Screenshot 

nơi Ảnh chụp màn hình là tên của lớp với tập tin đính kèm.

Nếu nó được cài đặt như một viên ngọc, làm được điều này kịch bản bên trong/console:

Screenshot.all.each {|s| s.image.reprocess! } 

thay thế Ảnh chụp màn hình với tên thích hợp lớp

+0

Phương pháp thứ hai thực sự hữu ích, tôi đã thất bại trong phương thức thứ nhất với ngoại lệ của phương thức undefined. – albb

+2

nếu bạn có nhiều ảnh chụp màn hình, bạn nên sử dụng #find_each. Screenshot.find_each {| s | s.image.reprocess! } – Schneems

+0

tiết kiệm thời gian rất lớn - cảm ơn bạn !! –

6
rake paperclip:refresh:thumbnails 
+2

Đối với tôi cụ thể hơn: cào kẹp giấy: làm mới: thumbnails CLASS = MyClass – pixelearth

Các vấn đề liên quan