You're using state as a field, but have it listed as an attribute. I know you've tried this, but you'll definitely want to change it to a field. Also, to have the scope return items that are either public or on sale, you've got to use some OR logic manually:
:conditions => {:state => "(public | on_sale)"}
Whenever you use the :conditions option, the match mode is automatically set to :extended, unless you're specifying something yourself - which you have been, so you should change that. The :any match mode applies to all query terms provided and treats field labels as query terms as well - again, not what you want.
Hope this helps.
Cheers
--
Pat
> --
> You received this message because you are subscribed to the Google Groups "Thinking Sphinx" group.
> To view this discussion on the web visit https://groups.google.com/d/msg/thinking-sphinx/-/kc2l8R9MflsJ.
> To post to this group, send email to thinkin...@googlegroups.com.
> To unsubscribe from this group, send email to thinking-sphi...@googlegroups.com.
> For more options, visit this group at http://groups.google.com/group/thinking-sphinx?hl=en.