Rails Geocoder – 仍在学习

我确定这是一个简单的问题,因为我没有完全理解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

 

Nearby locations

  • ( miles)

_sidebar.html.erb

   :get do %> 

nil %>

谢谢

如果我评论出.nearbys

  
  • ( miles)
  • 搜索工作。 这可能是安装地理编码器的问题吗?

    nearbys函数是模型上的函数,而不是模型集合上的函数。 变量@users包含一组User模型。 您需要在单个模型实例上调用该函数,例如,对于@users每个用户。

    举个例子,但不确定你是否真的想要这个:

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

    (请注意,我还在for user in @users更改了for user in @users以使用@users.each do |user| ,这更像是“ Rubyish ”。)