Rails Geocoder - еще учусь - PullRequest
       0

Rails Geocoder - еще учусь

5 голосов
/ 01 октября 2011

Я уверен, что это просто проблема, потому что я не до конца понимаю, как биты сочетаются друг с другом в Rails ...

Я следовал за рельсами , но у меняпроблема при внедрении его в мое приложение (у меня это работает автономно).

Я получаю ошибку:

неопределенный метод `nearbys '

Вот что у меня есть: user.rb

  geocoded_by :full_address   
  after_validation :geocode

  def full_address
    [address1, address2, address3, city, country, postcode].compact.join(', ')   
  end

users_controller.rb

def index
    @title = "All users"

    if params[:search].present?
      @users = User.near(params[:search], 50, :order => :distance)
    else
      @users = User.all
    end
end

index.html.erb

<h3>Nearby locations</h3>
<ul>
<% for user in @users.nearbys(10) %>
  <li><%= link_to user.address1, user %> (<%= user.distance.round(2) %> miles)</li>
<% end %>
</ul>

_sidebar.html.erb

            <%= form_tag users_path, :method => :get do %>
                <p>
                <%= text_field_tag :search, params[:search] %>
                <%= submit_tag "Search Near", :name => nil %>
                </p>
            <% end %>

Спасибо

Если я закомментирую .nearbys

<% for user in @users#.nearbys(10) %>
  <li><%= link_to user.latitude, user %> (<%= user.distance.round(2) %> miles)</li>
<% end %>

Поиск работает.Может ли это быть проблемой с установкой геокодера?

1 Ответ

4 голосов
/ 01 октября 2011

Функция nearbys - это функция вашей модели, а не коллекции моделей. Переменная @users содержит коллекцию User моделей. Вам нужно вызвать функцию для одного экземпляра модели, например, для каждого пользователя в @users.

В качестве примера, но не уверен, действительно ли вы этого хотите:

<% @users.each do |user| %>
  <% user.nearbys(10).each do |near_user| %>
    <li><%= link_to near_user.latitude, near_user %> (<%= near_user.distance.round(2) %> miles)</li>
  <% end %>
<% end %>

(Обратите внимание, что я также изменил for user in @users на @users.each do |user|, что больше " Rubyish ".)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...