Ruby on Rail 5.1.0よりrails-ujsはRails本体に取り込まれました。 Unobstructed JavaScriptを提供するライブラリーとしてのjquery-ujsの役割はrails-ujsと重複です。また、Ruby on Rail 5.1.0からjqueryへの依存関係もなくなりました。 なので今後のメインテナンス、拡張性を考えてjquery-ujsからrails-ujsへ移行することにしました。 この記事では、移行の仕方を経験を踏まえて紹介します。 移行するまえに必要なこと 様々なシナリオをチェックするインテグレーションテストがあること ユニットテスト 他のGemをアップデート 1.application.jsでjquery-ujs を rails-ujsに変更
Rails6.0でWebpackerがデフォルトのJavascriptsのコンパイラーになりました。 Webpackerを使うことでWebpackが用意している様々な機能が使えるようになりますし、SplitChunksで簡単に最適化も行えます。 なので以前のRailsのバージョンを使ってアプリを構築している人は、SporocketsからWebpackerへの移行を考えていると思います。 でも肝心の移行方法は、Railsのオフシャルドキュメントでは軽く触れているだけで、十分ではありません。 英語では詳しい移行方法に触れたサイトはあるものの、このサイトを参照しても具体な手順は曖昧なところがあります。 そこで、具体的で簡潔なステップ・バイ・ステップでの移行方法の肝心なところを紹介します。 1.まずはwebpackerGemをGemfileに加えます
サイトを運営していると、レスポンスを早くするにはどうすればいいかと常に考えますね。 サーバーの性能を上げたり、ネットワーク環境を良くしたりとハードウエアでの対応も重要ですが、実際に動いているコードの最適化が一番大切な所ですね。 123ishはRailsで出来ていますが、コードの最適化にBullet というジャムを使っています。 Rails の便利なオブジェクト関連性の定義によって、実は一つで済むようなSQL呼び出しが、関連するレコードをSQLから一つ一つ呼び出すという、とても時間のかかる実装に陥ってしまうことがあります。 一括読読み込みをすれば2回ですむSQL呼び出しが、そうでないと11回もSQL呼び出しをすることになってしまうという簡単な例と共に、このN+1クエリ問題についてRailsガイドに詳しく載っています。 このN+1クエリ問題を見つけてくれる便利なジャムがBullet です。 また、何時でも一括読み込みをすれば良いのでもなく、むしろ要らない読み込みはメモリーの浪費と逆にレスポンスを遅くしてしまいます。 この無駄な一括読み込みもBullet によってレポートされます。つまりBullet によ…