前提・実現したいこと
ruby on railsのアプリにおいて、Google Maps APIを使用し、マップと、マップ上に複数のマーカー表示をしようとしています。
発生している問題・エラーメッセージ
複数のマーカーを表示できるよう、javascript内にeach文を配置したところ、以下のエラーが発生しました。
エラーメッセージ
undefined local variable or method `damage' for #<#<Class:0x00007ff93a5b1b30>:0x00007ff93b5ccc68> Did you mean? @damages
エラー箇所
position: {lat: #{damage.latitude} , lng: #{damage.longitude} },
該当のソースコード
index.html.slim
.page-title 被害一覧 = link_to '被害の新規登録', new_damage_path, class: 'btn btn-primary' table.table.table-hover.index-table thead.thead-light tr th = Damage.human_attribute_name(:title) th = Damage.human_attribute_name(:place) th = Damage.human_attribute_name(:amount) th = User.human_attribute_name(:department) th = User.human_attribute_name(:name) th tbody - @damages.each do |damage| tr td = link_to damage.title, damage_path(damage), class: 'damage-title' td = damage.place td = damage.amount&.to_s(:delimited) td = damage.user.department td = damage.user.name - if damage.user_id == current_user.id td = link_to '編集', edit_damage_path(damage), class: 'btn btn-primary' - else td = tr td = "合計" td = "#{@total_place}箇所" td = @total_amount.to_s(:delimited) td = td = td = #map javascript: var map; function initMap() { var target = document.getElementById('map'); // 中央に表示する座標 var center = {lat: 38.698953,lng: 139.925736} map = new google.maps.Map(target, { center: center, zoom: 10 }); //複数のマーカーを表示するための記載 - @damages.each do |damage| //マーカー var marker = new google.maps.Marker({ position: {lat: #{damage.latitude} , lng: #{damage.longitude} }, map: map, title: "#{damage.title}", icon: ( "#{damage.description}".indexOf('現地確認未了') == -1 ) ? "http://maps.google.com/mapfiles/ms/micons/red-dot.png" : "http://maps.google.com/mapfiles/ms/micons/blue-dot.png" }); } script async="" defer="defer" src="https://maps.googleapis.com/maps/api/js?key=AIzaSyDD8_DF2AUAtXfZVcQYFUi3T3AslQKAXaw&callback=initMap"
試したこと
インデントの深さを確認しましたが、問題はないと認識しています。
補足情報(FW/ツールのバージョンなど)
javascript文の外側であるtbody
で- @damages.each do |damage|
と同じ記載方法をしているのですが、tbody
に置いてはエラーは発生していません。
Google Maps APIの使用に再しては、以下のサイトの情報を参考にさせて頂きました。
https://qiita.com/yamaotoko4177/items/30b72766d013904452fa
http://www.webdesignleaves.com/pr/plugins/googlemap_01.html
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/09/16 14:08
2019/09/16 14:10
2019/09/16 22:07
2019/09/16 23:23
2019/09/17 01:06
2019/09/17 01:10
2019/09/17 01:20
2019/09/17 01:24
2019/09/17 01:36 編集