質問: ### 前提・実現したいこと Javascript(toppages.js)で作成したGoogleMApAPI(JSON.parse?)のデータをRubyonRailsのview/toppages/index.html.erbのに読み込みたいです。 toppages.jsではなく、toppages.coffeeでも実行できますか? ### 発生している問題・エラーメッセージ ``` ・toppages.coffeeにJavascriptのコードを書いて実行したエラーがでます。 エラーメッセージ:ExecJS::RuntimeError in Toppages#index Showing /home/ec2-user/environment/maps/app/views/layouts/application.html.erb SyntaxError: [stdin]:5:1: reserved word 'function' <%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %> <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true %> ``` ### 試したこと app/assets/javascripts/toppages.coffeeではなく、app/assets/javascripts/toopages.jsを作成し、googleMapAPIを表示するプログラミングを書いた。 gem 'execjs', '~> 2.7'、gem 'therubyracer'、gem "jquery-rails"を追加。 ちなみにapplication.jsには、 //= require rails-ujs //= require activestorage //= require turbolinks //= require_tree . //= require jquery //= require jquery_ujs このように書かれています。 補足情報(FW/ツールのバージョンなど) -------------------- AWSのcloud9を使用しています。 ここにより詳細な情報を記載してください。
回答: Rubyが分かるわけではないのですが、エラー内容と提示いただいた情報から推測できる内容で回答します。 > > 普通にhtml.indexとmain.jsだと読み込めます。 > > > (たぶんindex.htmlとしたいのでしょうか) ということは静的な状態ではできるということはRubyの書き方の問題っぽいですね。SyntaxErrorということは構文エラーですし。 「reserved word」は「予約語」なので、Rubyの予約語であるfunctionを何かの定義とかで使ってしまった、、ということではないでしょうか。 toopages.jsが正しく読み込めているかもご確認ください(ブラウザ開発ツールのコンソールを確認すれば分かると思います)