web-dev-qa-db-ja.com

ペーパークリップを更新または再処理しようとすると機能しません

私は時間をかけて、クラスディールの親指のサイズを変更しました。これらの変更により、ユーザーはサイトにアップロードしていたため、親指のサイズが異なる人はほとんどいません。これらを再処理または更新したかったので、ルートに移動して次のように入力しました。

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)

オリジナルを再処理して、現在の親指サイズパラメータで親指を正しいサイズにするために何ができますか?

PDATE:ペーパークリップに含まれているattachment.rbを見つけました。興味深いのは、.save.updated_atのようなメソッドが機能することです。しかし、reprocess!と他のいくつかのメソッドはそうではありません。明らかに異臭がするものはありますか?

28
Trip

とった!

これは、ペーパークリップがモデルのオブジェクトに関連しているのではなく、モデルのオブジェクトの画像に関連しているためです。したがって、適切に記述すると、次のように機能します。

Model.find(#).image.reprocess!
66
Trip

付属のRakeタスクを使用することもできます。

$ rake Paperclip:refresh CLASS=Deal

ペーパークリップWiki を参照してください

10
Undistraction