acts_as_ferret tip: uninitialized constant Ferret::Index::FieldInfos

I have upgraded acts_as_ferret plugin to the latest version and my fulltext search stopped searching. It was throwing an error message:

NameError (uninitialized constant Ferret::Index::FieldInfos):
    /opt/local/lib/ruby/gems/1.8/gems/activesupport-1.4.2/lib/active_support/dependencies.rb:263:in `load_missing_constant'
    /opt/local/lib/ruby/gems/1.8/gems/activesupport-1.4.2/lib/active_support/dependencies.rb:452:in `const_missing'
    .//vendor/plugins/acts_as_ferret/lib/acts_as_ferret.rb:119:in `field_infos'
    .//vendor/plugins/acts_as_ferret/lib/local_index.rb:58:in `rebuild_index'
    .//vendor/plugins/acts_as_ferret/lib/local_index.rb:37:in `ensure_index_exists'
    .//vendor/plugins/acts_as_ferret/lib/local_index.rb:9:in `initialize'
    .//vendor/plugins/acts_as_ferret/lib/class_methods.rb:304:in `new'
    .//vendor/plugins/acts_as_ferret/lib/class_methods.rb:304:in `create_index_instance'
    .//vendor/plugins/acts_as_ferret/lib/class_methods.rb:55:in `aaf_index'
    .//vendor/plugins/acts_as_ferret/lib/class_methods.rb:120:in `find_id_by_contents'
    .//vendor/plugins/acts_as_ferret/lib/class_methods.rb:176:in `ar_find_by_contents'
    .//vendor/plugins/acts_as_ferret/lib/class_methods.rb:170:in `find_records_lazy_or_not'
    .//vendor/plugins/acts_as_ferret/lib/class_methods.rb:86:in `find_by_contents'

If you observe the same error, try to run ruby setup.rb in directory …/ruby/gems/1.8/gems/ferret-0.11.4. It seems that gem install ferret needs a small help.

1 comment

  1. Roman,

    Thank you for saving me bunch of time. I was experiencing the same problem and guess what this was the first search result in google 🙂

    BTW, the server must be restarted after running setup.

    Abhishek

Comments are closed.