はじめてのRails開発 ベンリ機能集
こんにちは!スペースマーケットでエンジニアをしているrokioです。
弊社ではスクラムで開発を進めていくなかで、
フロントエンドを得意とする方がバックエンドを担当する(その逆もしかり)ことがよくあります。
加えて、Ruby on Railsを使用したプロジェクトをいくつか運用しており、
そうなると今までRailsを触ったことがない方が機能開発に携わる機会が発生します💡
今回はRails(Ruby)を触ったことがない方の開発がはかどる、
ベンリ機能を紹介したいと思います!
バージョン
Ruby: 3.0.7
Ruby on Rails: 7.0.8.6
※2025/2現在サポートされている中で、最も古いバージョンを取り扱います。
想定する実装
rails new
した後、以下を実行した直後の環境で説明します。
rails g scaffold User name:string email:string
今回紹介するTIPSはデフォルトで入るGemのみで使えるものに限定するので、
幅広い方に届くと嬉しいです☺️
参考までに、Gemfileのdevelopmentグループに入っているGemの一覧とバージョンを書いておきます。
debug (1.9.2)
web-console (4.2.1)
TIPS
コード実行時に途中で止める(デバッグモード)
コード中にbinding.irb
と書き、その部分が実行されると、
Rubyに標準でついている対話型シェル、「irb」が起動します。
画像のように、現在止まっている場所が一目で分かりますね!
ブレイクポイント時点のコンテキストを引き継いでいるので、
その時点で定義されている変数やメソッドを呼び出せます。
このシェル独自に定義されたメソッドもあり、よく使うものとして
-
step
:ステップイン -
next
:ステップオーバー -
exit
:デバッグモードを終了して、ブレイクポイント以降の処理を続行する
が挙げられます。
こちらに詳しい使い方が書いてありますので、参考にしてください!
ちなみに、ブロック文や、if文など、
通常のコーディングでは改行を使うようなものを直感的に書けます。
001* [1,2,3].each do |n|
002* puts n
003> end
上記例では、1行目を入力した後、Enterを押すと、入力したものをすぐ評価せず、
いい感じにインデントして(カーソルがちょっと右に来た状態で)入力を待機してくれます。
puts n
と入力して、Enterを押してもまだ評価されず、
最後にend
と入力してEnterを押してやっとこれまで入力したものが評価されます。
(この例だと1 2 3と表示される)
色々試した後に「あれ今どこで止めているんだっけ?」となったら
whereami
(「Where am I?」のこと)と入力してEnterを押すと、
現在のファイル名と行数が表示されるのでこちらもご活用ください!
Rails Consoleでコードを実行
コマンドラインでbundle exec rails c
を実行すると、Rails Consoleが起動します。
現在のRailsプロジェクトの設定を反映させた状態で起動してくれるので、
コードを本格的に書き始める前の試し書きにベンリです。
私がこのときによく使うメソッドとして、reload!
をご紹介します!
reload!
は、Railsプロジェクト内のファイルを再読み込みしてくれるメソッドです。
rails c
で色々試しながらコードを書いていると、
rails c
を実行した時点で読み込まれたファイルの内容が反映されていないことがあります。
モデルに新しいメソッドを追加しても、そのメソッドは自動的には読み込まれないのです。
一度exit
してコンソールを終了して、再度起動してもいいのですが、
reload!
を使えば一発なのと、そこまでに定義したローカル変数もそのまま残ってくれるので、
それらを使い回したいときはベンリです。
オブジェクトに使えるメソッドを確認
デバッグ中やrails consoleで、
任意のオブジェクトに使えるメソッドを確認したいときは、
obj.methods
と入力してEnterを押します。
<入力>
[1,2,3].methods
<出力>
このままだとメソッドがたくさん出てしまうので、
「あのメソッド名...dからはじまる...なんだっけ?」
というときは、grep
を使ってメソッド名を絞り込めます。
<入力>
[1,2,3].methods.grep(/^d/)
<出力>
これで、d
から始まるメソッド名だけが表示されます。
さいごに
開発をベンリにするTIPSはまだまだあると思います!
新しく見つかったら随時更新していきます。
それでは、良いRailsライフを!

スペースを簡単に貸し借りできるサービス「スペースマーケット」のエンジニアによる公式ブログです。 弊社採用技術スタックはこちら -> whatweuse.dev/company/spacemarket
Discussion