In that case, you'd want to overwrite the initialize method, but very carefully. Here's how I might do it:
def initialize(*args) super(*args) # ... your code here end Jordan On 2/11/08, Glenn Little <[EMAIL PROTECTED]> wrote: > > > I think I was really looking for something that would act as an > initialization even if I wasn't necessarily saving the object to > the database. "after_initialize" seemed like the right thing until > I found the somewhat dramatic extra effect of overwriting fields > in find() results. I probably just need to overwrite new() or > something, but for now I'll just work around it. > > -glenn > > Jordan Fowler wrote: > > Glenn, > > > > I don't quite understand what you're asking for. When you call save on > > an ActiveRecord object, the following happens: > > > > * (-) save > > * (-) valid > > * (1) before_validation > > < > http://api.rubyonrails.com/classes/ActiveRecord/Callbacks.html#M001303> > > > > * (2) before_validation_on_create > > < > http://api.rubyonrails.com/classes/ActiveRecord/Callbacks.html#M001305> > > > > * (-) validate > > * (-) validate_on_create > > * (3) after_validation > > < > http://api.rubyonrails.com/classes/ActiveRecord/Callbacks.html#M001304> > > > > * (4) after_validation_on_create > > < > http://api.rubyonrails.com/classes/ActiveRecord/Callbacks.html#M001306> > > > > * (5) before_save > > < > http://api.rubyonrails.com/classes/ActiveRecord/Callbacks.html#M001297> > > > > * (6) before_create > > < > http://api.rubyonrails.com/classes/ActiveRecord/Callbacks.html#M001299> > > > > * (-) create > > * (7) after_create > > < > http://api.rubyonrails.com/classes/ActiveRecord/Callbacks.html#M001300> > > > > * (8) after_save > > < > http://api.rubyonrails.com/classes/ActiveRecord/Callbacks.html#M001298> > > > > You should be able to find what you're looking for. > > > > --Jordan > > > > > > On 2/11/08, *Glenn Little* <[EMAIL PROTECTED] > > <mailto:[EMAIL PROTECTED]>> wrote: > > > > > > I'm looking for a callback that I think is something like > > after_initialize and before_create. I'd like it to take > > effect whenever a new object is created (unlike before_create which > > I believe only happens before saving to a database), > > but I do *not* want it affecting the results of, say MyClass.find. > > > > For instance, if in my_class.rb I define: > > > > def after_initialize > > self.some_field = "initial value" > > end > > > > then MyClass.find(<conditions>).some_field *always* equals > > "initial value", which is definitely not what I want. > > > > I'd like null values to remain null as well in finds, so putting > > in an "unless self.some_field" wouldn't help me. > > > > Thanks... > > > > -glenn > > > > Website: http://www.jordanfowler.com > > Phone: 406.546.8055 > > > > > > > -- Jordan A. Fowler 2621 First Ave Apt 5 San Diego, CA 92103 E-mail: [EMAIL PROTECTED] Website: http://www.jordanfowler.com Phone: 406.546.8055 --~--~---------~--~----~------------~-------~--~----~ SD Ruby mailing list [email protected] http://groups.google.com/group/sdruby -~----------~----~----~----~------~----~------~--~---
