Access block scope from AR object

I need to create a sort of transaction around some Active Record objects that perform many insert/updates.

Example:

class MyObject

def transaction &block

@my_var = value

self.instance_eval block

end

end

MyObject.new.transaction do

Model.create

Model.collection.create

etc…

end

I have a gem that add a method into AR::Base and I need to read the variables setted by the transaction inside the method at runtime.

Any way I can access the block scope from there inside?

Thanks

Andrea

I need to create a sort of transaction around some Active Record objects that perform many insert/updates. Example:

class MyObject def transaction &block @my_var = value self.instance_eval block end end

MyObject.new.transaction do Model.create Model.collection.create etc...... end

I have a gem that add a method into AR::Base and I need to read the variables setted by the transaction inside the method at runtime. Any way I can access the block scope from there inside?

Why not use an actual transaction? If you're generating some per transaction value then pass it as an argument to the methods you're calling inside the transaction.

Fred

Fred. The issue is that I should have to override lots of Model to support it.

Ex: Model.create transaction_value: value

I would like something more elegant.

Andrea