Koz and Ryan, Now that you point it out, I see how #method_missing calls find, then find thinks I'm retarded and over writes my method by doing a class eval. Thus removing my original code.
Am I figuring that right? I've always had trouble generating aliases to singleton methods. I seem to recall the following syntax doesn't work alias self.old_name self.new_name but I might be confusing trying alias old_name self.new_name Thank you for your insights, Chris Lundquist On Nov 9, 2:37 pm, Michael Koziarski <[email protected]> wrote: > > May I suggest aliasing the method instead of trying to call super? > > alias_method :old_find_by_name, :find_by_name > > def Person.find_by_name(*params) > > params.first.chop! if params.first.last == "." > > old_find_by_name(params) > > end > > super won't work here because the method isn't defined on a parent of > Person, it's defined on person itself. So what's happening is that > the call to method missing is generating a *new* implementation of > find_by_name which simply does the find, without your changes. > > We could fix this for rails 3.0 by moving those generated methods from > Person to a module included in person, but for 2.3 you'll have to do > as Ryan suggests and use aliasing, or just call > all(:conditions=>{:first_name=>params.first}) instead of super. > > -- > Cheers > > Koz --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Core" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/rubyonrails-core?hl=en -~----------~----~----~----~------~----~------~--~---
