Well, it took a little while (okay, okay, a long while), but this is changed in 
the most recent releases (2.0.0.rc2, 1.3.19). Sorry for the delay.

-- 
Pat

On 01/02/2010, at 3:23 PM, Pat Allan wrote:

> Right, thanks for that Steve. It all makes sense, really...
> 
> I'll look at changing the sphinx_attributes method (and others) to be mixed 
> in constantly.
> 
> -- 
> Pat
> 
> On 29/01/2010, at 10:34 AM, Steve H wrote:
> 
>> Marshal (correctly) won't dump anything with singleton methods.  This
>> is because things with singleton methods can't be properly "re-
>> hydrated".  Imagine if you dumped an object to JSON.  If you wanted to
>> get it back, you could create a new instance of that object, and
>> assign all the values from the values in your JSON string.  But if you
>> have a special method that has been defined on an object, there's no
>> way for Marshal to get that method back.  So that's why it breaks.
>> Take a look at this over-simplified example in IRB:
>> 
>> irb(main):006:0> Marshal.dump Object.new
>> => "\004\bo:\vObject\000"
>> irb(main):007:0> o = Object.new
>> => #<Object:0x10016b4e8>
>> irb(main):008:0> def o.foo
>> irb(main):009:1> p "foo"
>> irb(main):010:1> end
>> => nil
>> irb(main):011:0> Marshal.dump o
>> TypeError: singleton can't be dumped
>>      from (irb):11:in `dump'
>>      from (irb):11
>>      from :0
>> 
>> 
>> -Steve
>> 
>> On Jan 28, 1:23 am, Pat Allan <[email protected]> wrote:
>>> Hi Steve
>>> 
>>> The reason I add this on when I get search results back, is because 
>>> sphinx_attributes is useless at any other point, and I don't like the idea 
>>> of modifying *all* objects for something that only has use in a single 
>>> situation.
>>> 
>>> Still, maybe it's worth it - it would make the code cleaner, and probably 
>>> speed up things when search results are populated. I would be interested in 
>>> trying to figure out why memcache doesn't like it - don't suppose you've 
>>> found out any of the finer details?
>>> 
>>> Cheers
>>> 
>>> --
>>> Pat
>>> 
>>> On 28/01/2010, at 4:31 AM, Steve H wrote:
>>> 
>>> 
>>> 
>>>> So... we rely on memcache heavily throughout our site, as I'm sure
>>>> many other developers do as well.
>>> 
>>>> Adding the sphinx_attributes as a singleton method on the specific
>>>> object that is pulled back from the search causes memcache to break.
>>> 
>>>> Frankly, my preferred solution is for the thinking_sphinx gem to re-
>>>> open ActiveRecord (or at least re-open the indexed classes) and add an
>>>> attr_accessor :sphinx_attributes
>>> 
>>>> Currently what we're doing is taking some of the stuff out of
>>>> sphinx_attributes and putting it into a custom search_results object
>>>> (legacy stuff), then looking our object up again by id.
>>> 
>>>> I think the fix I'm going to do (for now) is to remove the
>>>> sphinx_attributes method from the object once we're done initializing
>>>> our custom search_results object.  But ideally, this wouldn't be
>>>> necessary...
>>> 
>>>> -Steve
>>> 
>>>> --
>>>> 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 
>>>> athttp://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.
>> 
> 
> -- 
> 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