7

ユーザーとの距離に基づいて特定の場所を表示しようとすると、少し問題が発生します。私のコントローラーにはこれがあります:

  if User.find(current_user)
    @user = User.find(current_user)
    @locations = Location.near(params[:latitude => @user.latitude, :longitude => @user.longitude], 50, :order => :distance)
  end

ユーザーは緯度と経度を保存しています。Location.near 行に正しいパラメーターがないと思っていますが、どうあるべきかわかりません。

どんな助けでも大歓迎です。

乾杯!

4

2 に答える 2

8

少し書き直してみましょう。 current_user は既に設定されているはずで、User.find を呼び出す必要はありません。次に、緯度、経度を配列として渡すことができるようです

 @locations = Location.near([current_user.latitude, current_user.longitude], 50, :order => :distance)

http://railscasts.com/episodes/273-geocoder

http://www.rubygeocoder.com/

https://github.com/alexreisner/geocoder (readme を確認してください)

于 2012-07-13T05:09:21.100 に答える
2

検索する距離を定義できます。単位も渡すことを忘れないでください。

@locations = Location.near([current_user.latitude, current_user.longitude], 50, units: :km)
于 2014-12-17T19:31:06.057 に答える