Client 
  has_many :client_categories 
  has_many :categories, :through => :client_categories 

ClientCategory 
  belongs_to :category 
  belongs_to :client 

Category 
  has_many :client_categories 
  has_many :clients, :through => :client_categories 

Each client can order their categories individually, so client_categories 
includes a position column. Each ClientCategory is further subdivided and 
may be in a group (group_id). 

I am wanting to search categories for a given client and return Categories 
- ordered first by client_categories.group, then client_categories.position 
then at the end of the search include categories not assigned to that 
client. 

I can do this by indexing client_categories and searching the 
ClientCategory model. This is very slow though. 

Can I do this through the Category Model? 

e.g. 

define_index do 
    indexes name, :sortable => true 
    has client_categories.client_id, :as => :category_client_id, :sortable 
=> true 
    has client_categories.group_id, :as => :category_group_id, :sortable => 
true 
end 

Ignoring trying to include clients not assigned to categories at the 
moment: 

@categories = Category.search nil,:with=>{:category_client_id=>1},:order => 
:category_group_id 

This does not work. 

Also not sure how to include categories not assigned to the client. 

Any thoughts much appreciated, big thanks, 

Mike 

-- 
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/-/S44OFcKXDIAJ.
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