Thanks Steve.

On Feb 18, 1:01 pm, P Witty <[email protected]> wrote:
> Yeah. Do something like this to process each object that comes back:
>
> results.each do |o|
> class << o; self; end.send(:remove_method, :sphinx_attributes)send
> (:remove_method, :excerpts)
> end
>
> Cheers
>
> -Steve
>
> On Feb 18, 2010, at 11:32 AM, Eric <[email protected]> wrote:
>
>
>
> > Hey Guys-
>
> > I'm running into the same issue.  Any updates on a fix?
>
> > Thanks,
> > Eric
>
> > On Jan 31, 10:23 pm, Pat Allan <[email protected]> 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 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 
> > 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.

Reply via email to