Tech Racho エンジニアの「?」を「!」に。
  • Ruby / Rails関連

Rails: ルーティングを動的にビジュアル表示する方法

以前Railsウォッチ20201012でご紹介した内容を自分用に別記事にしました。

RailsのルーティングをFSM(有限状態機械)の形式でHTMLファイルに出力し、動的にルーティングをシミュレートできる機能です。

参考: 有限オートマトン - Wikipedia

Railsのルーティングビジュアライザ

必要なもの

  • Railsローカル実行環境
  • graphviz

なお、2012年の56fee39でJourneyがAction Dispatchに統合された時点で既にビジュアライザのコードが入っているので、もっと前からこの機能があったようです。少なくともRails 4以上で使えるはずです。

利用法

  • 自分のローカル環境にgraphvizをインストールしておきます。MacでHomebrewを使っている場合はbrew install graphvizでインストールできます。

  • Railsプロジェクトのルートディレクトリで以下を実行し、出力されたout.htmlをブラウザで開きます。

$ bin/rails r 'File.binwrite "out.html", <アプリ名>::Application.routes.router.visualizer'

なお<アプリ名>はRailsのアプリ名に置き換えます(アプリ名はconfig/application.rbにある大文字で始まるモジュール名を使います)。

もちろんRailsコンソールでも実行できます。

File.binwrite "out.html", <アプリ名>::Application.routes.router.visualizer

出力されたHTML冒頭のボックスにルーティングを入力して[simulate]を押すと、該当するルーティングがFSM図上でハイライトされます。

参考

この機能は、Kaigi on RailsのAaron Pattersonさんによるオープニングキーノートスピーチ『Viewがレンダリングされるまでの技術とその理解』でRailsの秘密機能として紹介されていました(動画は頭出し済み)。

関連記事

Railsのルーティングを極める(前編)


CONTACT

TechRachoでは、パートナーシップをご検討いただける方からの
ご連絡をお待ちしております。ぜひお気軽にご意見・ご相談ください。