Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to reference parent model from Carrierwave Uploader object

I want to run some methods after the upload of a file has been completed via Carrierwave. Carrierwave includes several callback methods detailed here.

I'm planning on using the :store callback.

That's great, but it requires me to run the callback method in the Uploader object instance. This isn't the end of the world, but I want to keep all the logic inside of my parent Model.

My question is: How should I be referencing the parent model from the Uploader? I don't see anything obvious in the documentation?

I suppose I could do something like

ParentModel.last.call_my_method_here

but this seems like a very brittle way to code this (not expecting a lot of requests, but still).

like image 884
Paul Avatar asked Jan 16 '23 05:01

Paul


2 Answers

I guess the model variable is what you were looking for, see examples using it here

like image 84
pjam Avatar answered Jan 23 '23 00:01

pjam


For what it's worth, I have used the after_commit callback on parent model which so far seems to be working properly. This is allowing me to interact with the uploaded file as well.

like image 45
Paul Avatar answered Jan 23 '23 02:01

Paul