聽起來似乎並不困難,但在查找一段時間後,我無法找到一種方法來更改Geokit-rails
中closest
範圍的limit
。更改Geokit「最接近」範圍中的「限制」條款
我試圖在此改變該方法,其根據文檔所定義的定義:
def closest(options = {})
geo_scope(options).order("#{distance_column_name} asc").limit(1)
end
,但沒有成功。
有什麼想法?非常感謝你!
聽起來似乎並不困難,但在查找一段時間後,我無法找到一種方法來更改Geokit-rails
中closest
範圍的limit
。更改Geokit「最接近」範圍中的「限制」條款
我試圖在此改變該方法,其根據文檔所定義的定義:
def closest(options = {})
geo_scope(options).order("#{distance_column_name} asc").limit(1)
end
,但沒有成功。
有什麼想法?非常感謝你!
這是geokit護欄/ geokit的舊版本,現在的定義是:
def closest(options = {})
by_distance(options).first(1)
end
所以不需要重寫任何東西,你的代碼可以簡單地說:
MyClass.by_distance(options).limit(my_limit)
注:儘量避免猴子修補現有的代碼。如果你做了什麼,在另一條評論建議說,現在的工作,但只要你更新geokit/geokit護欄,你的風險就打破僵局,實現做改變(例如最接近的方法來實現,而有所不同。
您可以覆蓋這個方法,是這樣的:
module Geokit
def closest(options = {})
geo_scope(options).order("#{distance_column_name} asc").limit(options[:limit] || 1)
end
end
,並把這個文件在配置/初始化文件夾,重新啓動服務器。注意:把正確的模塊名稱,類。考慮它像一個方法的路徑。
它的伎倆, 謝謝! –