That does the trick. Thank you! On Wednesday, October 29, 2014 8:18:14 PM UTC-4, Pat Allan wrote: > > You’ll need an ActiveRecord association joining the two models. This might > do the trick in your User model: > > belongs_to :location, :foreign_key => :zip_code, :primary_key => > :zip_code > > And then, you’ll want to make sure that join is included in the index > definition (the `join` call), and then you can refer to the locations table > in the SQL snippets: > > ThinkingSphinx::Index.define :user, :with => :active_record do > indexes name, :as => :user, :sortable => true > > has “RADIANS(locations.latitude)”, :as => :latitude, :type => :float > has “RADIANS(locations.longitude)”, :as => :longitude, :type => :float > has zip_code, :type => :integer > > join location > end > > Give that a spin, see how you go. > > Cheers > > — > Pat > > On 30 Oct 2014, at 8:29 am, [email protected] <javascript:> wrote: > > I need to covert degrees to radians for both the User and Locations index. > The conversion is working beautifully for Location index. The trouble I am > having is with the User index. Since the User model does not store latitude > and longitude, I created a relationship between the two tables in the User > model by doing: > > def latitude >> location = Location.find_by_zip_code(zip_code) >> if location >> location.latitude >> end >> end > > > Below is the location and user index. I have this error when I perform a > search "index user_core: parse error: Sphinx expr: syntax error, unexpected > TOK_IDENT near 'latitude, longitude)'". The error disappears when I remove > the conversion from the Users index, and instead I get `undefined method > `inject' for nil:NilClass`. Which I figured inject error is due to not > having the conversion setup. > > ThinkingSphinx::Index.define :location, :with => :active_record do >> indexes city >> >> has "RADIANS(locations.latitude)", :as => :latitude, :type => :float >> has "RADIANS(locations.longitude)", :as => :longitude, :type => :float >> end >> ThinkingSphinx::Index.define :user, :with => :active_record do >> indexes name, :as => :user, :sortable => true >> has "RADIANS(User.locations.latitude)", :as => :latitude, :type => >> :float >> has "RADIANS(User.locations.longitude)", :as => :longitude, :type => >> :float >> has(:zip_code, :as => :zip_code, :type => :integer) >> end > > > > -- > 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] <javascript:>. > To post to this group, send email to [email protected] > <javascript:>. > 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.
