0

まったく難しくないように思えますが、しばらく探した後limitclosestスコープの を変更する方法が見つかりませんGeokit-rails

ドキュメントに従って次のように定義されているこのメソッドの定義をオーバーライドしようとしました。

    def closest(options = {})
       geo_scope(options).order("#{distance_column_name} asc").limit(1)
    end

しかし、成功しませんでした。

何か案が?どうもありがとうございました!

4

2 に答える 2

0

これは geokit-rails/geokit の古いバージョンで、現在の定義は次のとおりです。

def closest(options = {})
  by_distance(options).first(1)
end

したがって、何もオーバーライドする必要はありません。コードは単純に次のように言えます。

MyClass.by_distance(options).limit(my_limit)

注: 既存のコードにモンキー パッチを適用することは避けてください。別のコメントで提案されていることを行った場合、現在は機能する可能性がありますが、geokit/geokit-rails を更新するとすぐに、実装が変更されるため、破損する危険があります (たとえば、最も近いメソッドの実装がかなり異なります。

于 2014-01-13T20:33:44.203 に答える