Hi, I have three models: Comatose::Page, Article and Product. In all of them, store_class_name is set to true. Now, when i do: results = Comatose::Page.multi_search("*", [Article,Product], options) I get: wrong constant name Comatose::Page #{RAILS_ROOT}/vendor/plugins/acts_as_ferret/lib/class_methods.rb:438:in `const_get'' #{RAILS_ROOT}/vendor/plugins/acts_as_ferret/lib/class_methods.rb:438:in `multi_search'' #{RAILS_ROOT}/vendor/plugins/acts_as_ferret/lib/class_methods.rb:460:in `id_multi_search'' #{RAILS_ROOT}/vendor/plugins/acts_as_ferret/lib/multi_index.rb:28:in `search_each'' #{RAILS_ROOT}/vendor/plugins/acts_as_ferret/lib/multi_index.rb:28:in `search_each'' #{RAILS_ROOT}/vendor/plugins/acts_as_ferret/lib/class_methods.rb:457:in `id_multi_search'' #{RAILS_ROOT}/vendor/plugins/acts_as_ferret/lib/class_methods.rb:437:in `multi_search'' #{RAILS_ROOT}/app/controllers/application.rb:44:in `run_search'' #{RAILS_ROOT}/app/controllers/application.rb:68:in `full_text_search'' #{RAILS_ROOT}/app/controllers/search_controller.rb:16:in `index'' -e:4:in `load'' -e:4 The ferret index files include the name Comatose::Page and are put in index/developement/comatose/page directory. Any idea why I might get that error? I dont get it with results = Comatose::Page.find_by_contents(q, options) Best regards, Tom -- Posted via http://www.ruby-forum.com/.
On Wed, Mar 21, 2007 at 01:32:37PM +0100, Linus wrote:> Hi, > I have three models: Comatose::Page, Article and Product. > In all of them, store_class_name is set to true. > > Now, when i do: > results = Comatose::Page.multi_search("*", [Article,Product], options) > I get: > > wrong constant name Comatose::Page > > #{RAILS_ROOT}/vendor/plugins/acts_as_ferret/lib/class_methods.rb:438:in > `const_get''[..]> Any idea why I might get that error?yeah, const_get can''t resolve namespaced constant names - this issue is fixed in trunk. If you don''t want to upgrade, replace the call to const_get with something like model_class = model_name_string.constantize (dont know what''s the name of the var holding the model''s name from the top of my head) [..]> I dont get it with results = Comatose::Page.find_by_contents(q, options)that''s because in this case (one-model query) there is no need to lookup a class based on the model name stored in the index. cheers, Jens -- Jens Kr?mer webit! Gesellschaft f?r neue Medien mbH Schnorrstra?e 76 | 01069 Dresden Telefon +49 351 46766-0 | Telefax +49 351 46766-66 kraemer at webit.de | www.webit.de Amtsgericht Dresden | HRB 15422 GF Sven Haubold, Hagen Malessa
Jens Kraemer wrote:> On Wed, Mar 21, 2007 at 01:32:37PM +0100, Linus wrote: >> #{RAILS_ROOT}/vendor/plugins/acts_as_ferret/lib/class_methods.rb:438:in >> `const_get'' > [..] >> Any idea why I might get that error? > > yeah, const_get can''t resolve namespaced constant names - this issue is > fixed in trunk.Thank you, trunk works ok :-) Best regards, Tom -- Posted via http://www.ruby-forum.com/.