acts_as_ferret Searching child models - no method error

In attempting to search child models (returning the parent object)
using part of the
"# Descend child elements" script

I get a "no method" error for "all_fields". Does anyone know why this
could be or where in fact the method comes from. If it works its a
good solution unless anyone knows of any another way of searching
child models while still returning the parent object.

His script is:
  # Descend child elements
  self.class.reflect_on_all_associations.collect { |association|
           self.send(association.instance_values["name"]).collect { |
       child.to_doc.all_fields.collect { |field|
         doc << field
       } if child.class.respond_to?("acts_as_ferret")

To use: extend the acts_as_ferret to_doc method by copying it into the
parent model and add the above code onto the end of it before the
return of doc.

Incidentally I use the code below instead (hard coding a child model)
but still have the same problem.

    self.products.each do |product|
              product.to_doc.all_fields.collect { |field| doc <<

I appreciate any deadline looms!