2011-06-20 32 views
2

Geokit-Rails(https://github.com/andre/geokit-rails)で遊んでいるので、10マイル以内にすべてのレコードを見つける必要があります。ここに私のエラーです:geokit-railsの未定義メソッドmerge_conditions

Company.find(:all, :origin=>'New York, NY', :within=>10) 
NoMethodError: undefined method `merge_conditions' for #<Class:0x0000010832f740> 
from /Users/san/.rvm/gems/ruby-1.9.2-p0/gems/activerecord-3.0.1/lib/active_record/base.rb:1016:in 'method_missing' 
from /Users/san/Documents/sanj/app/vendor/plugins/geokit-rails/lib/geokit-rails/acts_as_mappable.rb:349:in `apply_bounds_conditions' 
from /Users/san/Documents/sanj/app/vendor/plugins/geokit-rails/lib/geokit-rails/acts_as_mappable.rb:260:in `prepare_for_find_or_count' 
from /Users/san/Documents/sanj/app/vendor/plugins/geokit-rails/lib/geokit-rails/acts_as_mappable.rb:152:in `find' 
from (irb):4 
from /Users/san/.rvm/gems/ruby-1.9.2-p0/gems/railties-3.0.1/lib/rails/commands/console.rb:44:in `start' 
from /Users/san/.rvm/gems/ruby-1.9.2-p0/gems/railties-3.0.1/lib/rails/commands/console.rb:8:in `start' 
from /Users/san/.rvm/gems/ruby-1.9.2-p0/gems/railties-3.0.1/lib/rails/commands.rb:23:in `<top (required)>' 
from script/rails:6:in `require' 
from script/rails:6:in `<main>' 

私はCompany.rbでacts_as_mappableを持っていると私は会社に列latlngを移行しました。どこが間違っていますか?

答えて

5

私はちょうどこの非常事を自分自身に遭遇しました。

これは完全に1分のハックフィックスですが、それはその使用範囲外にはほとんど影響を与えない比較的無害なメソッド挿入なので、プラグインにメソッドを追加したばかりです。

merge_conditionsはdeprecatedです。rails 2.3.8のActiveRecord :: Baseメソッドです。私は多分(チェイニングマニュアルSQL条件のこの種を置き換えるかを正確にはわからないアプリ/ベンダー/プラグイン/ geokitレール/ libに/ geokitレール/ 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 

に挿入

:スコープ?)ので、ジオキットコードは少し古くなっていますが、ハックが古い外部ライブラリに含まれている場合には、特に1分のハックフィックスが必要です。

私はよく分かります元のコードが他の場所でmerge_conditionsを呼び出した場合たぶん、私はまだそれが積極的に管理されている場合は、このコードを更新するための "適切な"方法を理解する時間がかかるでしょう。

私たちはnot the only onesです。

最初のコメントのようにmyModel.geo_scopeを試してみると、bblzzz ...

関連する問題