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
>     > 

--~--~---------~--~----~------------~-------~--~----~
SD Ruby mailing list
[email protected]
http://groups.google.com/group/sdruby
-~----------~----~----~----~------~----~------~--~---

Reply via email to