Rails 3 GEM 'GeoCoder' поиска функциональность поиска и дизайн модели

StackOverflow https://stackoverflow.com//questions/9612024

Вопрос

У меня есть свой вид общих вопросов о Geocoder GEM и как разработать мои модели в рельсах, чтобы облегчить полезные особенности геокодера.

У меня есть модель статьи и модель размещения. Статья всегда будет написана о месте, поэтому статья всегда будет иметь Place_id. Модель Place содержит адрес этого места и и: широту и: Tongite Columns, который требует геокодер. У

Geocoder имеет метод «ближайшие клеевые», которые позволяют мне найти места рядом с данным местом, например @ Place.nearbys даст коллекцию мест поблизости @place. Это здорово, но я хочу иметь возможность найти все статьи, которые написаны недавно, и написали о местах поблизости.

Я могу думать только о двух способах сделать это. Либо добавьте столбец широты и долготы в модель моей статьи, которая позволила бы мне обыскать @ Tools.nearby. Проблема с этим решением заключается в том, что кажется, что это не будет хорошим дизайном модели, поскольку место должно нести ответственность за проведение широты и долготы, а не каждая статья, написанная о месте.

Если вы можете сделать некоторые предложения о том, как я мог легко добиться этого, это было бы здорово, то есть!

Это было полезно?

Решение

Пара опций, которые могут работать для вас?

@places = Place.near(@search, @distance, :order => :distance)
@articles = Article.where("place_id IN (?)", @places).where("published_on > ?", 60.days.ago).limit(3 * @places.length)
.

Ленивые загрузки изделий из мест, но ограничить результаты

@place = Place.find(params[:id])
@place.nearbys(@distance).each do |place|
    place.articles.order("created_at desc").limit(3).each do |article|
        # ...
    end
end
.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top