2014-01-13 29 views
0

聽起來似乎並不困難,但在查找一段時間後,我無法找到一種方法來更改Geokit-railsclosest範圍的limit更改Geokit「最接近」範圍中的「限制」條款

我試圖在此改變該方法,其根據文檔所定義的定義:

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

,但沒有成功。

有什麼想法?非常感謝你!

回答

0

這是geokit護欄/ geokit的舊版本,現在的定義是:

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

所以不需要重寫任何東西,你的代碼可以簡單地說:

MyClass.by_distance(options).limit(my_limit)

注:儘量避免猴子修補現有的代碼。如果你做了什麼,在另一條評論建議說,現在的工作,但只要你更新geokit/geokit護欄,你的風險就打破僵局,實現做改變(例如最接近的方法來實現,而有所不同。

+0

它的伎倆, 謝謝! –

0

您可以覆蓋這個方法,是這樣的:

module Geokit 
    def closest(options = {}) 
    geo_scope(options).order("#{distance_column_name} asc").limit(options[:limit] || 1) 
    end 
end 

,並把這個文件在配置/初始化文件夾,重新啓動服務器。注意:把正確的模塊名稱,類。考慮它像一個方法的路徑。