Hello, If I am understanding correctly, you need some mechanism to correlate several models together, you are hoping to use the created_at and modified_at timestamps provided by active record, to match the models using a timestamp.
I see the created_at and modified_at timestamp's as database level information - I try not to rely on these for my business logic as they represent when the database record was created and modified, this is a separate concern to the actual business transaction. Anything in my business domain that I want to record a time against I try model that explicitly. In this case I would consider introducing a transaction_completed_at column (or a UUID). Or take it a step further and model a transaction separately and add a foreign key in each of the other models. The way I see it, transaction_completed_at will tell me when the transaction completed and created_at and modified_at will tell me when it was persisted and modified in the database. Thanks, Henry On 27 May 2015 at 00:28, Ruby Railhead <rubyrailh...@gmail.com> wrote: > Hello, Frederick: > > Thanks for your response, that was very helpful both in validating my > approach, and suggesting other ways to accomplish this. > > I'm still surprised this issue hasn't come up for others ... does anyone > else have input on how this should/shouldn't be performed, or how they > solved this issue? > > (For those just tuning in, I need all the updated_on/created_on > timestamps, in a series of AR object created/updated within a transaction, > to match exactly) > > Thanks again, > Ruby > > > > On Thursday, May 21, 2015 at 5:20:59 AM UTC-4, Frederick Cheung wrote: >> >> >> >> On Thursday, May 21, 2015 at 6:58:35 AM UTC+1, Ruby Railhead wrote: >>> >>> >>> Idea 3: Subclass ActiveRecord::Base (to say ActiveRecordLocal) and mix >>> in the modules mentioned above into this class. >>> Thoughts: This makes is clearer that when you're using >>> ActiveRecordLocal, you're not getting the stock ActiveRecord::Base >>> behavior. Otherwise this solution is identical to Idea 2. >>> >>> >> Of the ideas you outline, I would either do this or: >> >> - use SomeModel.record_timestamps = false to stop active record setting >> timestamps >> - use before_save / before_create callbacks (or override save) to set >> your own timestamps >> - continue overriding transaction in order to get your start of >> transaction timestamp. >> >> The reason for this slightly different strategy is that it means you're >> only overriding public methods, so their api will remain stable (or at >> least go through the usual deprecation cycle) across versions of active >> record. >> >> Fred >> > -- > You received this message because you are subscribed to the Google Groups > "Ruby on Rails: Talk" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to rubyonrails-talk+unsubscr...@googlegroups.com. > To post to this group, send email to rubyonrails-talk@googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msgid/rubyonrails-talk/4674c558-dbba-4b48-9f27-ed9f1ac00406%40googlegroups.com > <https://groups.google.com/d/msgid/rubyonrails-talk/4674c558-dbba-4b48-9f27-ed9f1ac00406%40googlegroups.com?utm_medium=email&utm_source=footer> > . > For more options, visit https://groups.google.com/d/optout. > -- *Mobile:* +61 4 0136 1909 -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscr...@googlegroups.com. To post to this group, send email to rubyonrails-talk@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/CAPeHLo%3DUTjZe736vxJrjKmm%3DHrQmtcVQYYpB1jaFvVcUQ%2Bi-WQ%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.