Hi Roger

Sounds like your idea of sorting by the lowest price per dentist (if searching 
on the Dentist model directly) is the best bet - you'll want to have a SQL 
snippet with that aggregate in your index definition:

  has "MIN(procedure_prices.price)", as: :procedure_price, type: :float

Another option would be to have an index on your ProcedurePrice model (which 
can pull in organisations, dentist details), and search on that instead. 
Depends what else the search involves, I guess.

Hope this is helpful!

-- 
Pat

On 20 Jun 2014, at 11:11 am, Roger Kind Kristiansen 
<[email protected]> wrote:

> 
> Hopefully it's just that my cases keep getting a bit more complex, but I 
> never quite seem to get the hang of the indexing. Again it would be great 
> with some advice from someone smarter than me, so I'm trying my luck here 
> again:
> 
> I have a bunch of Dentists, who performs many different Procedures. The 
> prices of the procedures belong to the organization/clinic the dentist works 
> at.
> 
> Now I have a dentist index, to which I'd like to add support for sorting by 
> the price of a given procedure. Since a dentist might be connected to 
> multiple practices, I'm thinking of restricting sorting to the lowest priced 
> entry. Since this includes quite a few more steps than what I've encountered 
> so far I have been unable to wrap my head around how to do this.
> 
> The simplified data model looks somewhat like this:
> 
> class Dentist < Person
>   has_many :organizations, through: :person_organizations
> end
> 
> class Organization
>   has_many :prices, class_name: 'ProcedurePrice'
> end
> 
> class ProcedurePrice
>   attr_accessible :price
>   belongs_to :procedure
> end
> 
> class Procedure
>   attr_accessible :name
> end
>     
> 
> Any ideas on how to solve this?
> 
> Cheers,
> Roger
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Thinking Sphinx" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at http://groups.google.com/group/thinking-sphinx.
> For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups 
"Thinking Sphinx" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/thinking-sphinx.
For more options, visit https://groups.google.com/d/optout.

Reply via email to