2014-01-14 1 views
0

지오 코더를 사용하여 현재 사용자의 위치와 얼마나 가까운 지에 따라 게시물을 주문하려고합니다. 여기 는 컨트롤러 :지오 코더를 사용하여 거리별로 도시별로 게시물 주문

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 
+0

컨트롤러에 복수 할 @closepost 안 거리 매개 변수를 놓친 갱신? –

+0

그래, 내 실수로 바꿨어. 이제 {: order => : distance}에 대해 정의되지 않은 메소드'to_f '를 얻습니다 : 해시 오류. @ 클로즈 포스트 라인을 감지하는 것은 잘못되었지만 무엇을 변경해야할지 모릅니다. – user2759575

+0

고마워, 그걸 시도해 볼게. – user2759575

답변

1

당신이 정의

@closepost

을보기에 당신이 전화하는 동안 :

@closeposts

을 당신은 정의되지 않은 변수에 .each를 호출합니다.

지오

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

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')  

당신은

+0

죄송합니다. 지금은 {: order => : distance}에 대해 정의되지 않은 메소드'to_f '를 얻고 있습니다 : 해시 오류. – user2759575

+0

이'.near (@city, order : : distance) 메소드를 정확히 어디서 발견 했습니까? 나는 문서를보고 있었고 '주문'을 찾을 수 없었다. – rmagnum2002

+0

또 다른 stackoverflow 대답에서 찾을 수 있기 때문에 나는 심지어 그 올바른지 모르겠다. 나는 ip 위치로부터의 거리별로 분류하기 위해 문서에서 아무것도 찾을 수 없었다. – user2759575