That did the trick, thanks a million! Awesome. Whenever you come to The Netherlands, mail me and I make you as many pancakes as you like.
On Aug 6, 1:22 pm, Pat Allan <[email protected]> wrote: > Hi Martijn > > I think I found the problem - Rails 2.2 and newer will automatically > load models when cache_classes is set to true (ie: production/staging > environments). This wasn't the case back in 2.1, so now Thinking > Sphinx checks versions and will load models itself if necessary. Give > the latest version a shot, see if that helps. > > Cheers > > -- > Pat > > On 06/08/2009, at 9:32 AM, Martijn wrote: > > > > > Hi Pat, > > > I'm running Rails 2.1.0 > > > Thanks so much, > > Martijn > > > On Aug 5, 11:58 pm, Pat Allan <[email protected]> wrote: > >> Ah, great research... just one more question, then I can really dig > >> into solving it, hopefully this week: what version of Rails are you > >> running? > > >> -- > >> Pat > > >> On 05/08/2009, at 3:57 PM, Martijn wrote: > > >>> Done it. Still doesn't work :( I've figured out some of its behavior > >>> though... > > >>> After a deploy (and running rake RAILS_ENV=staging ts:config ; rake > >>> RAILS_ENV=staging ts:stop ; rake RAILS_ENV=staging ts:index ; rake > >>> RAILS_ENV=staging ts:start) I go to the console. > > >>> ThinkingSphinx.indexed_models.inspect returns [] > >>> Page.search ' ' returns results (yes!!) > >>> ThinkingSphinx.indexed_models.inspect then returns ['Page'] > >>> Item.search ' ' gives the error (NoMethodError: undefined method > >>> `constantize' for nil:NilClass) > >>> ThinkingSphinx.indexed_models.inspect then returns ['Page','Item'] > >>> Page.search ' ' keeps returning results, but Item.search ' ' keeps > >>> giving the error. > > >>> Hopefully this is a useful clue? Running > >>> 'ThinkingSphinx.indexed_models.inspect' for the first time in > >>> development returns ['Page', 'Post', 'Item'] immediately. > > >>> Martijn > > >>> On Aug 5, 3:42 pm, Pat Allan <[email protected]> wrote: > >>>> It's odd, indeed. The only difference I can see in your indexes is > >>>> that Item doesn't use associations, but the other two do. Can you > >>>> remove the associations fields and attributes (and add a > >>>> placeholder > >>>> field for Page, because at least one is needed - indexes > >>>> "'text'", :as > >>>> => :text) and see if that changes anything? > > >>>> -- > >>>> Pat > > >>>> On 05/08/2009, at 2:36 PM, Martijn wrote: > > >>>>> When I put 'puts ThinkingSphinx.indexed_models.inspect' inside the > >>>>> def > >>>>> models_by_crc in configuration.rb, it returns every model at > >>>>> development - ["Item", "Page", "Post"] and only one model at > >>>>> staging - > >>>>> ["Item"]. (The search only works for Items in this case ...) > > >>>>> So I guess the million pancake question is: why doesn't it display > >>>>> all > >>>>> the models? I don't get any strange output when running 'rake > >>>>> ts:in > >>>>> RAILS_ENV=staging' > > >>>>> Martijn > > >>>>> On Aug 5, 2:52 pm, Pat Allan <[email protected]> wrote: > >>>>>> Hi Martijn > > >>>>>> Thanks for the update with the latest stack trace. It's odd that > >>>>>> it's > >>>>>> one model in particular that's having problems. Can you share > >>>>>> your > >>>>>> define_index blocks for each model? > > >>>>>> -- > >>>>>> Pat > > >>>>>> On 05/08/2009, at 1:10 PM, Martijn wrote: > > >>>>>>> Hi Pat, > > >>>>>>> Thanks for the reply. I've updated to the latest version of TS > >>>>>>> now. > >>>>>>> The error stays though... > > >>>>>>> Querying Sphinx: lorem > > >>>>>>> ActionView::TemplateError (undefined method `constantize' for > >>>>>>> nil:NilClass) on line #8 of projects/search.html.erb: > > >>>>>>> 8: <%- @contributions.each do |contribution| %> > >>>>>>> ... > >>>>>>> vendor/plugins/thinking-sphinx/lib/thinking_sphinx/search.rb: > >>>>>>> 615:in `class_from_crc' > >>>>>>> vendor/plugins/thinking-sphinx/lib/thinking_sphinx/search.rb: > >>>>>>> 601:in `instances_from_matches' > >>>>>>> vendor/plugins/thinking-sphinx/lib/thinking_sphinx/search.rb: > >>>>>>> 599:in `each' > >>>>>>> vendor/plugins/thinking-sphinx/lib/thinking_sphinx/search.rb: > >>>>>>> 599:in `instances_from_matches' > >>>>>>> vendor/plugins/thinking-sphinx/lib/thinking_sphinx/search.rb: > >>>>>>> 219:in `populate' > >>>>>>> vendor/plugins/thinking-sphinx/lib/thinking_sphinx/search.rb: > >>>>>>> 284:in `call' > >>>>>>> vendor/plugins/thinking-sphinx/lib/thinking_sphinx/search.rb: > >>>>>>> 284:in `retry_on_stale_index' > >>>>>>> vendor/plugins/thinking-sphinx/lib/thinking_sphinx/search.rb: > >>>>>>> 205:in `populate' > >>>>>>> vendor/plugins/thinking-sphinx/lib/thinking_sphinx/search.rb: > >>>>>>> 78:in > >>>>>>> `method_missing' > > >>>>>>> The strange thing is, I search over 3 models; Post, Page and > >>>>>>> Item. I > >>>>>>> only get this error when I search for text that appears in a > >>>>>>> Post. > >>>>>>> It > >>>>>>> only happens at staging as well - on my development machine > >>>>>>> everything > >>>>>>> works. > > >>>>>>> regards, > >>>>>>> Martijn > > >>>>>>> On Aug 4, 9:41 pm, Pat Allan <[email protected]> wrote: > >>>>>>>> Hi Martijn > > >>>>>>>> Not entirely sure why this is happening - but it appears you're > >>>>>>>> using > >>>>>>>> an old version of TS, so that makes it a bit hard to debug. > >>>>>>>> Would > >>>>>>>> you > >>>>>>>> be able to update to the latest and try again? > > >>>>>>>> Also, I've deprecated ThinkingSphinx::Search.search for > >>>>>>>> ThinkingSphinx.search in recent versions (1.2.x) - although the > >>>>>>>> old > >>>>>>>> syntax still works. > > >>>>>>>> Cheers > > >>>>>>>> -- > >>>>>>>> Pat > > >>>>>>>> On 04/08/2009, at 4:38 PM, Martijn wrote: > > >>>>>>>>> Hi all, > > >>>>>>>>> On my staging environment, I want to search over multiple > >>>>>>>>> models. > >>>>>>>>> If I > >>>>>>>>> search models individually, everything works fine. However, > >>>>>>>>> if I > >>>>>>>>> search using ThinkingSphinx::Search.search 'something' - I get > >>>>>>>>> the > >>>>>>>>> following error: > > >>>>>>>>> NoMethodError (undefined method `constantize' for > >>>>>>>>> nil:NilClass): > >>>>>>>>> /vendor/plugins/thinking-sphinx/lib/thinking_sphinx/ > >>>>>>>>> collection.rb: > >>>>>>>>> 101:in `class_from_crc' > >>>>>>>>> /vendor/plugins/thinking-sphinx/lib/thinking_sphinx/ > >>>>>>>>> collection.rb: > >>>>>>>>> 80:in `instances_from_classes' > >>>>>>>>> /vendor/plugins/thinking-sphinx/lib/thinking_sphinx/ > >>>>>>>>> collection.rb: > >>>>>>>>> 78:in `each' > >>>>>>>>> /vendor/plugins/thinking-sphinx/lib/thinking_sphinx/ > >>>>>>>>> collection.rb: > >>>>>>>>> 78:in `instances_from_classes' > >>>>>>>>> /vendor/plugins/thinking-sphinx/lib/thinking_sphinx/ > >>>>>>>>> collection.rb: > >>>>>>>>> 39:in `instances_from_matches' > >>>>>>>>> /vendor/plugins/thinking-sphinx/lib/thinking_sphinx/ > >>>>>>>>> collection.rb: > >>>>>>>>> 31:in `create_from_results' > >>>>>>>>> /vendor/plugins/thinking-sphinx/lib/thinking_sphinx/ > >>>>>>>>> search.rb: > >>>>>>>>> 371:in `search' > >>>>>>>>> /vendor/plugins/thinking-sphinx/lib/thinking_sphinx/ > >>>>>>>>> search.rb: > >>>>>>>>> 388:in `call' > >>>>>>>>> /vendor/plugins/thinking-sphinx/lib/thinking_sphinx/ > >>>>>>>>> search.rb: > >>>>>>>>> 388:in `retry_search_on_stale_index' > >>>>>>>>> /vendor/plugins/thinking-sphinx/lib/thinking_sphinx/ > >>>>>>>>> search.rb: > >>>>>>>>> 363:in `search' > > >>>>>>>>> Everything works on development though. Why do I get this > >>>>>>>>> error on > >>>>>>>>> staging? Help is greatly appreciated! --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
