Hi Chris You're right, this is a bit different to the standard use-case. Still, if you've got Thinking Sphinx loading in your external service with AR, then I'm surprised it's not working - there is the after_commit hook that should be firing off to add the task. Don't suppose you've figured out why it's not?
Otherwise, a manual way of firing off the indexing after each change is the following: Phrase.index_delta(phrase_instance) Cheers -- Pat On 29/06/2009, at 4:21 PM, cera wrote: > > I've been able to answer my own question by snooping around the code. > It appears that the DJ code is populated after the AR object is saved. > > I've added numerous print statements, and I can see that the > 'Deliberately blank' after_commit() method is called after save() is > called in vendor/after_commit/lib/after_commit/active_record.rb. > > I should have mentioned that my save() call is coming from outside of > rails, but still uses AR. I setup a test controller in Rails, and I > can now see an attempt to insert into the DJ table. > > I suspect my use case is outside the use case under which this was > developed. Is there an easy way to trigger this after the save() is > called that doesn't use all of the after_commit magic? > > Thanks, -Chris > > > On Jun 29, 10:35 am, cera <[email protected]> wrote: >> Hi Pat, >> >> Thanks for the response. >> >> I'm using rails 2.1.0, and and ts version 1.1.22 installed as a >> plugin. I'm running in the cygwin environment for development, which >> I suppose could be a problem. >> >> I don't have any after_* callbacks that I know of, but I'll double- >> check into this. >> >> I'd like to understand who/what inserts into the delayed_jobs table. >> Is it rails after the model gets saved, or is it the separate >> delayed_delta task? >> >> I'm going to start poking around the TS code to get a better >> understanding of how it works. Thanks, -Chris >> >> On Jun 28, 1:35 am, Pat Allan <[email protected]> wrote: >> >>> Hi Chris >> >>> What you've described all sounds correct. I'm not quite sure what's >>> going wrong - there should be jobs appearing in the delayed_jobs >>> table. Are there any after_* callbacks on your model? (Although, >>> wouldn't think that'd change anything, but I'm not sure how to >>> proceed). >> >>> What versions of Rails and Thinking Sphinx are you using? >> >>> -- >>> Pat >> >>> On 25/06/2009, at 10:34 AM, cera wrote: >> >>>> Hi everyone, >> >>>> I'm trying to setup delta indexing using the Delayed Job method >>>> discussed in the documentation. I believe I've done everything >>>> mentioned in the documentation, but my indexes never get updated >>>> automatically. I believe my problem is a lack of understanding the >>>> workflow and how this interaction is supposed to work. >> >>>> I have two processes running: first is the ts:start task, and in >>>> another terminal the ts:dd. I have a 'delta' column in my model, >>>> and >>>> these records get saved through ActiveRecord. When they are saved, >>>> the delta column is set to 1. I don't understand what triggers the >>>> indexing to happen, and my delayed_jobs table doesn't contain any >>>> rows. >> >>>> Could someone please tell me what is supposed to happen next, or >>>> what >>>> I am missing? >> >>>> I have the following in my model: >> >>>> class Phrase < ActiveRecord::Base >>>> belongs_to :document >> >>>> define_index do >>>> indexes text >>>> set_property :delta => :delayed >>>> end >>>> end >> >>>> I appreciate any help. Thank you, -Chris > > --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
