しばらくの間、データベースに住所テーブルがあり、最近、Geocoder gem (sweet gem) に出会いました。とにかく、緯度と経度の両方の列を含めるようにモデルを編集し、各レコードが何を想定しているかを指定したgeocoded_by
ので、現在緯度がゼロになっているテーブル内のすべての住所を単純にジオコーディングしたいと思いますそして経度。
コマンドを実行するだけで、Railsコンソールでそれを理解したと思いました:
Address.all.each{ |address| address.geocode }
これにより、緯度と経度の列が入力された各エントリが返されますが、後で個々の要素を調べると、緯度と経度はまだゼロです (つまり、レコードは実際には更新されていません)。address.geocode!
たぶんうまくいくと思いましたが、それは . を返しましたNoMethodError
。
これは単純なものでなければなりませんが、私はそれが何であるかを知らないほど経験が浅いようです... ああ、もう少しいじって私はそれを理解しました:
解決
Address.all.each{ |address| address.update_attributes(latitude: address.geocode[0], longitude: address.geocode[1]) }