ピスタチオを食べながらrailsを楽しむ

ピスタチオ大好きな著者のrailsを使ったツール作成の日記です。

railsでjsが2回評価されるときの対処法

個人的にハマっていたことの備忘録。railsAjaxを実装したところ処理が2回評価されこれに1週間くらいハマった。

例えばdeleteをしようとすると

  1. You sure? => ハイハイ、シュアシュア。
  2. You sure? => ファッ!?

と、alertが2回表示される感じ。これだけならまだ良いがkaminariでページネーションを実装するとこれが大変なことになった。このままだと欲しい機能が実装出来ないので色々な記事を参考にしながら当該事象の発生条件を整理。 

  • application.js内でrequireされているjqueryを消すと1回になる
  • 消すと他のAjax処理で少し挙動が変になってしまう?(※恐らくりこれは良くない)

js関連の何かだと思いながらも、初学者の癖にいっぺんに色々と実装してしまったり、railsでいくつかのプロジェクトを同時に進行していたがために何が原因かの切り分けに時間が掛かった。

 

具体的には以下の対応で処理が正しく評価されるようになった。

  • config/environments/development.rbを編集
  • config.assets.debug = trueとなっていたのをfalseに変える
  • ターミナルからローカルでrake assets:cleanする(bundle execは付けない)

原因はいくつかのアプリを作っていた際にそのうちのどれかでrake assets:precompileしたのだがこのときに端折ってbundle execを忘れてしまったことだと思う。