2010-12-24 3 views
20

Je voulais exécuter le rappel after_post_process mais cela ne semble pas fonctionner dans Rails 3.0.1 avec Paperclip 2.3.8. Il donne une erreur:callbacks ou simple processeur?

undefined method `_post_process_callbacks' for #<Class:0x102d55ea0> 

Je veux appeler l'API Panda après le téléchargement du fichier. J'aurais créé mon propre processeur pour cela, mais comme Panda gère le traitement, et il peut aussi télécharger les fichiers, et se mettre en file d'attente pendant une durée indéterminée, je pensais qu'un rappel serait très bien. Mais les rappels ne semblent pas fonctionner dans Rails3.

after_post_process :panda_create 

    def panda_create 
     video = Panda::Video.create(:source_url => mp3.url.gsub(/[?]\d*/,''), :profiles => "f4475446032025d7216226ad8987f8e9", :path_format => "blah/1234") 
    end 

J'ai essayé d'exiger et d'inclure pour trombone dans mon modèle mais cela n'a pas semblé compter.

Anyideas?

+0

Dans quelle ligne paperclip ne se produit l'erreur? – Zabba

Répondre

46

Solution ...

je mets le rappel après la has_attached dans le paperclip modèle donné et il fonctionne à merveille. J'étais tellement habitué à toujours mettre le callback au sommet de tous les modèles que cela ne m'est arrivé que plus tard.

+0

A travaillé pour moi aussi. Assurez-vous d'accepter votre propre réponse! :-) –

8

Déplacement de l'has_attached_file attribut ci-dessus la validates_presence_of et validates_attachment dans votre modèle doit encore être fait, il semble. J'ai juste rencontré le même problème dans mon Rails 4/Ruby 2 mise en œuvre de PaperClip et en le mettant au-dessus fixé.

+0

Ce fut le problème avec moi .. – whizcreed

+0

J'ai eu le même problème lors de la mise à jour de la gemme Paperclip. Votre solution a fonctionné pour moi. Je vous remercie! –

1

J'ai rencontré ce problème car le nom de ma propriété d'image trombone ne correspondait pas au nom avec lequel je validais.

as_attached_file :image validates_attachment_content_type: :not_image