Hi Andrei

Thanks for figuring all that out - it made fixing the problem much easier. I've 
just pushed a change to GitHub which fixes this, and will hopefully get 1.3.10 
out in the next 24 hours.

Sorry for the hassle.

-- 
Pat

On 10/12/2009, at 12:22 PM, Andrei wrote:

> Ignore my previous posts, i have found what was preventing the delta
> from working.
> 
> After some debugging it became apparent that for those erroneous
> models the after_commit :index_delta callback just would not fire.
> 
> Thinking-sphinx enabled model does at least these three callbacks in
> the order below:
> 
> before_save  :toggle_delta
> after_commit :update_attribute_values
> after_commit :index_delta
> 
> The update_attribute_values method threw the unhandled exception that
> prevented the next after_commit from firing.
> 
> --- active_record/attribute_updates.rb
> 
> def update_attribute_values
>  return true unless ThinkingSphinx.updates_enabled? &&
> ThinkingSphinx.sphinx_running?
> 
>  config = ThinkingSphinx::Configuration.instance
>  client = config.client
> 
>  self.class.sphinx_indexes.each do |index|
>    attribute_pairs  = attribute_values_for_index(index)
>    attribute_names  = attribute_pairs.keys
>    attribute_values = attribute_pairs.values # ?:)
>    # attribute_values = attribute_names.collect { |key|
> attribute_pairs[key] }
> 
>    # here the exception
>    client.update "#{index.core_name}", attribute_names, {
>      sphinx_document_id => attribute_values
>    } if self.class.search_for_id(sphinx_document_id, index.core_name)
>  end
> 
>  true
> end
> 
> client.update would throw:
> "can't convert true into Integer" on the "is_active" => true, which is
> boolean, and
> "can't convert nil into Integer" on the "some_object_id" => nil, which
> is integer...
> 
> I could not debug further because these are Riddle errors, and i do
> not know if this is a bug or a feature.
> Please help, i do not know what to think next.
> 
> ---
> thinking-sphinx 1.3.9
> after_commit 1.0.5
> riddle 1.0.7
> and
> sphinx 0.9.9 release
> 
> --
> 
> 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.
> 
> 

--

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.


Reply via email to