Я только что наткнулся на эту самую вещь.
Это всего лишь 1-минутное хакерское исправление, но, поскольку это относительно безвредная вставка метода, которая не сильно повлияет за пределы его использования, я просто добавил метод прямо в плагин.
merge_conditions является устаревшим ActiveRecord :: Base методом из рельсов 2.3.8.
вставлено в app / vendor / plugins / geokit-rails / lib / geokit-rails / acts_as_mappable.rb
private
def merge_conditions(*conditions)
segments = []
conditions.each do |condition|
unless condition.blank?
sql = sanitize_sql(condition)
segments << sql unless sql.blank?
end
end
"(#{segments.join(') AND (')})" unless segments.empty?
end
Я не совсем уверен, что заменило этот вид цепочки условий SQL вручную (может быть: области действия), поэтому код геокита немного стар, но иногда 1-минутное исправление взлома - это все, что вам нужно, особенно когда взлом содержится в более старой внешней библиотеке ...
Полагаю, я выясню, вызывает ли оригинальный код merge_conditions где-нибудь еще, кроме этого. Может быть, я найду время, чтобы выяснить «правильный» способ обновления этого кода, если он все еще активно управляется.
Мы не единственные , испытывающие эту проблему.
Должен попробовать myModel.geo_scope как первый комментарий, bblzzz ...