Access block scope from AR object

12 views
Skip to first unread message

andreacfm

unread,
Sep 18, 2012, 4:55:53 AM9/18/12
to rubyonra...@googlegroups.com
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

Frederick Cheung

unread,
Sep 19, 2012, 3:41:59 AM9/19/12
to Ruby on Rails: Talk
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


> Thanks
>
> Andrea

Andrea Campolonghi

unread,
Sep 19, 2012, 3:46:52 AM9/19/12
to rubyonra...@googlegroups.com
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
> --
> You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
> To post to this group, send email to rubyonra...@googlegroups.com.
> To unsubscribe from this group, send email to rubyonrails-ta...@googlegroups.com.
> For more options, visit https://groups.google.com/groups/opt_out.
>
>

Andrea Campolonghi
acampo...@gmail.com



Reply all
Reply to author
Forward
0 new messages