投稿データがnilの場合の対処方法について
解決したいこと
Railsで投稿した画像からEXIFRデータを取得して、googleマップに表示しようとしています。
latitudeとlongitudeがない場合にエラーになるので解決したいです。
発生している問題・エラー
NoMethodError in Posts#show
undefined method `latitude' for nil:NilClass
center: {lat: <%= image.gps.latitude %>, lng: <%= image.gps.longitude %> },
該当するソースコード
<div type="text/javascript">
<script>
let circleBlue;
let nRadiusHalfKm = 160;
function initMap() {
map = new google.maps.Map(document.getElementById('map'), {
center: {lat: <%= image.gps.latitude %>, lng: <%= image.gps.longitude %> },
zoom: 15
});
circleBlue = new google.maps.Circle({
strokeColor: "#3333FF",
strokeOpacity: 1.0,
strokeWeight: 2,
fillColor: "#3333FF",
fillOpacity: 0.35,
map: map,
draggable: false,
center: {lat: <%= image.gps.latitude %>, lng: <%= image.gps.longitude %> },
radius: nRadiusHalfKm
});
}
</script>
</div>
自分で試したこと
事前にデータを用意しといて
let latitude = 35.28761370087725;
let longitude = 136.10488198333866;
データを取得できない場合、
if文でimage.gps.latitude.nil?を使えばよいのか
どのように対処すればよいかわかりません。
map = new google.maps.Map(document.getElementById('map'), {
if(image.gps.latitude.empty){
center: {lat: <%= image.gps.latitude %>, lng: <%= image.gps.longitude %> },
zoom: 15
}elseif{
center: {lat: 35.293218336492835 , lng: 136.0993888198985 },
zoom: 15
}
});
0 likes