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.