前提・実現したいこと
データベースに住所を保存した時に、同時にその住所の緯度経度が保存される状態を作りたいと思っています。
<参考にした記事>
https://qiita.com/nojinoji/items/8b68abc0217bebb1f0c3
dbはmy sqlで、以下のような構造です。
id(AUTO_INCREMENT/NULL FALSE) address(NULL FALSE) latitude(NULL TRUE) longitude(NULL TURE)
発生している問題・エラーメッセージ
住所の入っているcsvをrake db:seedすると、
以下のようなエラーがで続けます。
rake aborted! NoMethodError: undefined method `[]' for nil:NilClass
該当のソースコード
https://qiita.com/nojinoji/items/8b68abc0217bebb1f0c3
こちらの記事を参考にし、gem 'http'を入れた上で、以下のコードをaddress.rbに記載しています。
以下をのコードを削除してrake db:seedするとエラーなくデータが入るので、
こちらのコードが問題を起こしていることはわかるのですが、、、
class Address < ApplicationRecord after_validation :geocode private def geocode uri = URI.escape("https://maps.googleapis.com/maps/api/geocode/json?address="+self.address.gsub(" ", "")+"&key=#{ENV['GOOGLE_GEOCODER_API']}") res = HTTP.get(uri).to_s response = JSON.parse(res) self.latitude = response["results"][0]["geometry"]["location"]["lat"] self.longitude = response["results"][0]["geometry"]["location"]["lng"] end end
もし原因の想定がつくかたがいらっしゃれば、アドバイス願えますと幸いです。
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/08/10 03:22 編集
2019/08/10 03:32
2019/08/10 03:59