Hi Timo You're not the only person to hit this - someone's logged a similar issue on Github. To be honest, I'm a little surprised this is happening - as Sphinx 2.0.x should be storing the class name as a string attribute (more reliable than the old CRC approach, where collisions could potentially happen).
Is this only happening in development? Or production? Is the model in question using STI and/or is there a column called 'type'? -- Pat On 25/08/2011, at 11:00 PM, Timo Virkkala wrote: > Hi, > > I found a problem (and a hackaround solution) with the global search in > Thinking Sphinx. > > When I try to use ThinkingSphinx.search(term), I get a traceback like the > following: > > NoMethodError: undefined method `constantize' for 0:Fixnum > from lib/thinking_sphinx/search.rb:936:in `class_from_crc' > from lib/thinking_sphinx/search.rb:915:in `instances_from_matches' > from lib/active_support/ordered_hash.rb:139:in `each' > from lib/active_support/ordered_hash.rb:139:in `each' > from lib/thinking_sphinx/search.rb:913:in `instances_from_matches' > from lib/thinking_sphinx/search.rb:436:in `compose_results' > [etc.] > (I cleaned up the pathnames a bit) > > My (relevant) environment: > * rails (3.0.9) > * riddle (1.4.0) > * thinking-sphinx (2.0.5 dc98d80) > * sphinx (2.0.1-beta) > > I've managed to locate the problem: there are a couple of Sphinx version > number comparisons in ThinkingSphinx::Search, which choose what to do based > on the Sphinx version number. For some reason the correct actions would be > the ones chosen for Sphinx versions < 2, even though I'm running Sphinx 2.0.1. > > I can get the search to run correctly with the following monkey-patch: > class ThinkingSphinx::Search > def class_from_crc(crc) > # if Riddle.loaded_version.to_i < 2 > config.models_by_crc[crc].constantize > # else > # crc.constantize > # end > end > def crc_attribute > # Riddle.loaded_version.to_i < 2 ? 'class_crc' : 'sphinx_internal_class' > 'class_crc' > end > end > > Does anybody have an idea of why this is? Does Thinking Sphinx make incorrect > assumptions about the column names returned by sphinx, or do I have a > configuration error somewhere? > > - Timo Virkkala > > -- > You received this message because you are subscribed to the Google Groups > "Thinking Sphinx" group. > To view this discussion on the web visit > https://groups.google.com/d/msg/thinking-sphinx/-/g5JBaJp8TV4J. > 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/thinking-sphinx?hl=en. -- You received this message because you are subscribed to the Google Groups "Thinking Sphinx" 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/thinking-sphinx?hl=en.
