Попытка заставить Paperclip обновить или переработать не работает - PullRequest
28 голосов
/ 08 июня 2010

У меня со временем изменился размер превью класса Deal.Благодаря этим изменениям пользователи загружали на сайт, так что мало кто имеет большие пальцы.Я хотел повторно распаковать или обновить их, поэтому я пошел в свой корень и набрал:

rake paperclip:refresh class=Deal

Ничего не сделал для размеров большого пальца .. Затем я в скрипте / консоли:

Deal.find (987) .reprocess!

Вернул это:

NoMethodError: undefined method `reprocess!' for #<Deal:0xb68a0988>
from /data/HQ_Channel/releases/20100607130346/vendor/rails/activerecord/lib/active_record/attribute_methods.rb:260:in `method_missing'
from (irb):7

Мой класс сделки такой:

=> Deal(id: integer, organization_id: integer, deal: string, value: string, what: string, description: string, image_file_name: string, image_content_type: string, image_file_size: integer, image_updated_at: datetime, created_at: datetime, updated_at: datetime, deal_image_file_name: string, deal_image_content_type: string, deal_image_file_size: integer, deal_image_uploaded_at: datetime)

Что я могу сделатьчтобы он обработал оригинал, чтобы сделать большой палец правильным в текущих параметрах размера большого пальца?

ОБНОВЛЕНИЕ: Я обнаружил attachment.rb , включенный в Paperclip,Интересно то, что такие методы, как .save и .updated_at работают.Но reprocess! и некоторые другие методы этого не делают.Что-то пахнет явно не к месту?

Ответы [ 2 ]

66 голосов
/ 10 июня 2010

Понял!

Это потому, что скрепка не связана с объектом Модели, а скорее с изображением объекта Модели.Так написано правильно, это будет работать так:

Model.find(#).image.reprocess!
10 голосов
/ 02 июля 2014

Вы также можете использовать включенное задание Rake:

$ rake paperclip:refresh CLASS=Deal

См. Скрепка Wiki

...