使用地理编码器按城市距离订购帖子

时间:2014-01-14 03:56:18

标签: ruby-on-rails rails-geocoder

我正在尝试根据他们与使用地理编码器的当前用户的位置的距离来命令我的帖子。 这是控制器:

def top
@city = request.location.city
@closepost = Post.near(@city, order: :distance)
end

以下是观点:

<% @closepost.each do |post| %>
 <%= post.title %>
<% end %>

我收到此错误:

undefined method `to_f' for {:order=>:distance}:Hash

1 个答案:

答案 0 :(得分:1)

在控制器中

定义:

@closepost

在视图中你正在打电话:

@closeposts

并在未定义的变量上调用.each

<强>更新

irb> a=Geokit::Geocoders::GoogleGeocoder.geocode '140 Market St, San Francisco, CA' 
irb> a.ll 
=> 37.79363,-122.396116

@closeposts = Post.within(5, :origin => @city.ll).order('distance DESC') 

使用地理编码

@closeposts = Post.near('dublin', 50, :order => :distance)

你错过了距离参数