

いつもながらの忘備録。
とりあえず、同一のエラーでお困りの方のために、検索キーワードをばら撒いておく。
Railsにて、「'クラス名'」のJavaciprtが入っている「***.html.erb」で、同期の(普通の)aタグのリンクを設置した際、
そのページから同一のページに移動したら、
Uncaught SyntaxError: Identifier 'クラス名' has already been declared
という意味不明な多重定義のエラーがコンソールに出現した(ページの更新では出現せず)。
そして、デバッグでよく見ると、同期でページ移動したにも関わらず、JavaScriptのメモリが開放されていない。
(ES6であっても、普通はメモリの開放が起きる)
よくわからないので、mitaku師匠に聞いてみたら、(そんな設定はした覚えがないが)AJAXによる非同期通信が原因ではないかと言われた。
そして「Rails」の「turbolinks」というものは「同期のリンク」を「非同期のリンク」に置き換えていることが発覚。
……なにこのイヤラシイ仕様。
(´∀`;)
ということで「application.js」と「layouts/application.html.erb」から「turbolinks」の項を削除。
そうしたら、無事動くようになった。
(∩´∀`)∩
結論:
特別な理由がない限り「Rails」の「turbolinks」は無効にしておくべし。










