最近、Rails アプリの 1 つを 2.3 バージョンから 3.2 バージョンにアップグレードしています。そして、html.erb ファイルに記述された JavaScript に奇妙な動作があることに気付きました。これは、私がアップグレードした他のアプリでは決して起こりませんでした。
Ruby 1.9.3 Rails 3.2.14 にアップグレードしています
現在、jquery のバージョンは 1.4 ですが、アプリケーションが完全に移植されたら、1.9 または 1.10 にアップグレードします。
これが問題です。テンプレートに記述された JS があり、この JS のある時点で条件が大きくなると、その後に記述された JS コードは、firebug の JS エラーなしでページ上にテキストとしてレンダリングされます。スクリーンショットを添付しましたので、ご覧ください。
そして、その JS コードを .js ファイルに削除すると、この問題はなくなります。Rails 2.3アプリケーションで同じコードが正常に機能するため、ERBテンプレートの解析に何かが必要だと思います。
スクリーン ショットでは、JS コードは次のようにレンダリングされます。
" 0) jQuery("#li_" + caab_jurisdiction_name).show();..."
それはこのようなものから始まります
"if (jQuery("#mortgage_product_group_econveyance_editions").attr("value").indexOf(caab_jurisdiction_value) > 0) jQuery("#li_" + caab_jurisdiction_name).show();..."