Я пытаюсь делать то, что описано здесь: http://freelancing-god.github.com/ts/en/geosearching.htmlДумая Sphinx - geosearching с has_one полиморфной ассоциации
За исключением вместо того, колонки широты и долготы на моей модели, я хочу сделать:
class Post
has_one :location, :as => :locationable
end
class User
has_one :location, :as => :locationable
end
class Location
belongs_to :locationable, :polymorphic => true
end
так что пользователь и сообщение может оба записи местоположения устанавливается locationable_type и locationable_id ... так что я сделал следующее в моей модели Post:
define_index do
has locationable(:id), :as => :locationable_id
has "RADIANS(locations.lat)", :as => :latitude, :type => :float
has "RADIANS(locations.lng)", :as => :longitude, :type => :float
end
, но я получаю колонку Неизвестно в полевом списке ...
Что я делаю неправильно?
Да, я попробовал это изначально - и снова попытался, и это тоже не сработало. Я сомневался, что это сработает, потому что, читая документы сфинкса, кажется, что когда вы делаете что-то вроде: «RADIANS (locationable.lat)», он будет говорить напрямую с базой данных (без рубинов/рельсов), и нет такого вещь, доступная, насколько известно базе данных, - это волшебная рельсовая вещь. Фактическое имя таблицы - «местоположения», поэтому кажется, что sphinx должен ссылаться на это, нет? – patrick
Возможно, вам придется добавить некоторые данные из-за полиморфных отношений. – mustafaturan