🧲

【Rails】rails routesの出力からほしい情報だけ取り出す

2024/02/02に公開

はじめに

ルーティングを確認したいけど、routesが多くなってくるとrails routesコマンドでは求めている情報を得るのに時間がかかってしまう。今回はそんな時に便利な「特定のroutesだけ取り出して確認できるコマンド」についてです。

環境

  • OS: Windows
  • IDE: Cloud9
  • Ruby-3.1.2
  • Rails 6.1.7.6

特定のroutesを確認したい

# ベースのコマンドはこちら
$ rails routes|grep 文字列

# 例えばuserのroutesだけ確認したい場合はこうなる
$ rails routes|grep user

rails routesのうしろに|grepをつける。そのうしろに取り出したいものを書けばokです。
このコマンドでは、| (パイプ)grepというコマンドを使っています。

| (パイプ)とgrep

|(パイプ)

  • ターミナル上で使用される特殊文字。前のコマンドの出力を次のコマンドの入力として渡す役割を果たしています。
  • 先ほどのコマンドでいえば、rails routesというコマンドを実行し、その結果を| (パイプ)を介してgrep userというコマンドに渡しているという流れです。

grep

  • Linuxなどのコマンドライン環境で使用されるコマンドの1つです。grepコマンドは、テキストファイル内で特定の文字列を検索して表示する機能をもっています。検索の柔軟性を向上させられる便利なコマンドですね。
  • 先ほどの例では、grep userというコマンドでrails routesの出力からuserという文字列を含む行を検索、取り出して表示するという流れが行われています。

この子たち柔軟で便利なので、パイプを渡していくことでさらに絞ることもできます。

# userを含むものの中から更に PATCH メソッドに絞って取り出したいとき
$ rails routes | grep user | grep PATCH

最初に例として挙げたコマンドのうしろにまた同じようにパイプgrep文字列と並んでいますね。
rails routesで出力された中から文字列にuserを含むものを検索して取り出し、さらにPATCHを含むものを検索して取り出す…という風にほしいものだけに絞って表示することができます。

rails routesコマンドは頻繁に利用すると思うので、ぜひ活用してみてください。


このコマンド知るまでふつうに大量の結果の中からCtrl + Fの検索ショートカットキーとかで絞って順にみていたんですが、やっぱりさすが、便利なコマンドってあるものですね。

最後まで読んでいただきありがとうございました。
スクールでの3カ月の学習期間を終え、いよいよ次の段階です。今後も学びを止めず、引き続き自己学習たのしんでいきます💪
新しい情報はどんどんキャッチしていきたいので、プラスの情報や修正点等ありましたらご連絡いただけますと幸いです。

Discussion