turbolinks

javascriptがどうしても発火しない。絶対にイベントは発生しているはずなのに。
だって、onLoadで拾ってる。トレースのためのalert表示を見る限り、実行パスは通っている。
ああしたり、こうしたり、悶絶。javascriptをわざわざcoffeeに書き換えても、同じこと。いや、気休みだと思っていたけど。

ダメだよな、俺。つくづく、javascriptを理解していない。とりあえず、javascriptは授業で扱ってないから何とかなってるけど、教壇に立つ資格ないよなぁ・・・いかんいかん、こうやって、だんだんと、自分を責め始める。
賽の河原の石積み。「ひとおつぅ、積んではぁ、ちちのたメェ・・・」ってな、積んでは崩し、積んでは崩れ・・・

で、ふと「rails javascript 動かない」で検索したら、turbolinksに関する記事がザクザク。
僕が今使ってる最新環境では
jquery-turbolinks (2.1.0)
△△railties (>= 3.1.0)
△△turbolinks
turbolinks (5.2.0)
△△turbolinks-source (~> 5.2)
jquery-turbolinks を turbolinksの前に書け、と状況は変わらん。明示的な再ロードでないと、javascript Eventが発火しない。
(↑ WordPressのインデントの取り方、わからんかった。全角スペースも消される。意図しない動作が多い。全てを理解するには、時間がかかりすぎる。苦肉の策。↑△は空白)

もしやと思って、application.jsの
//= require turbolinks
を削除。そしたら、見事、問題解決!しかも、「再ロード」のデータベースアクセス時間がほぼ半分に!
もしかしてだけど、もしかしてだけど、オイラの、じゃなくて、「キャッシュを見てスクリプトを実行しない誤動作」が発生しないときは、jquery-turbolinksと、turbolinksとで、処理が重複する、ってなことが起きていないか?という気がした。気がしただけ。調べてない。
結果的に、jquery-turbolinksは残したけれども、turbolinksだけを削除したら、動作時間が早くなり、正常動作するようになった。明らかに、この使い方は「非推奨」だろうと思うのだが、今回はこれでいく。納期に間に合わない。悶絶すること、半日。いや、今回は半日で済んだ。ネットのおかげ。

「発情期の野良猫」状態で、フギャー、ウギャーと騒ぎながらコードを組みつつ、そのうちに、「賽の河原の石積み」で完全に沈黙し、突然、ルンルン気分で、スキップでも始めそうなくらい陽気な気分になり、そしてまた、「野良猫状態」に陥る。

これを繰り返しながら、完成品に近づけていくことを、「スパイラル・モデル」と言います。(嘘です。)

初心者の相談から、ベテランのコメントまで、数多くの情報をネットに書き込んでくれている、不特定多数、数多くのプログラマ、システムエンジニアの皆様に、深謝いたします。おかげさまで、賽の河原を抜け出しました。
改めまして、合掌。(-人-)