icon
icon

Rubyでbindingを使う方法を現役エンジニアが解説【初心者向け】

初心者向けにRubyでbindingを使う方法について現役エンジニアが解説しています。bindingとはデバックツールのことで、エラーやログ、処理時間などを確認することができます。pry-railsというgemのインストール方法やbindingの使い方について解説します。

テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日  調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名  調査手法:インターネット調査

Rubyでbindingを使う方法について、TechAcademyのメンター(現役エンジニア)が実際のコードを使用して初心者向けに解説します。

 

Rubyについてそもそもよく分からないという方は、Rubyとは何なのか解説した記事を読むとさらに理解が深まります。

 

なお本記事は、TechAcademyのオンラインブートキャンプ、Ruby講座の内容をもとに紹介しています。
 

田島悠介

今回は、Rubyに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

Rubyでbindingを使う方法について詳しく説明していくね!

大石ゆかり

お願いします!

 
 

目次

 

bindingとは

プログラミングでエラーが発生した場合に、エラーの原因箇所を探すのは大変です。そのような場合には便利なデバックツールを使用することで、エラー箇所の特定できます。

デバッグツールにはいろいろな種類があり、エラー箇所の確認以外にもログの確認や処理時間の分析などをできるものなどがあります。

bindingを使用することでエラー箇所で処理を一時的に停止させ、変数の値などを確認することが出来るようになります。また、変数の値を確認が出来るためエラーが発生していない場合でも、値を確認したい箇所でそれぞれ確認ができるようになります。
 

[PR] Rubyのプログラミングで挫折しない学習方法を動画で公開中

bindingを使う方法

pry-railsというgemのインストールが必要になります。

gemのインストールの場合には、まずGemfileの中に

'pry-rails'

と追記します。

そして、ターミナルで

bundle install

を打つことでインストールされます。

次に変数の値などを調べたい箇所に’binding pry’と記述していきます。

binding pry

こちらは、変数の値を確認したい箇所の直後に記述すると有効です。

さらにHTMLのフォームなどで確認したい場合にも使用が出来ます。

その場合は

<% binding.pry %>

と加筆することで使用できるようになります。
 

実際に書いてみよう

(app/controllers/tests_controller.rb)

def index
 @tests = Test.all
 binding.pry
 end

上記のように記述するとbinding.pryと書かれた箇所で動作が止まります。

ターミナルを見ると以下のような表示がされ、対話式に確認ができるようになっています。

6: def index
7: @tests = Test.all
=> 8: binding.pry
9: end

[1] pry(#<TestsController>)>

ここでTest.allなどを打つと変数Testの中の値を確認をすることが出来ます。
 

まとめ

デバッグツールは多くありますが、bindingは使用頻度も高く、複雑な処理の確認には必要になります。

変数の値を意識した記述をすることでエラーが起こりにくくなるので、こまめにbindingで確認していくことも有効です。
 

筆者プロフィール

木村勇土

TechAcademyの現役メンター。

現在は行政書士事務所を運営しており、お客様にはプログラマーやフリーランサーも多い。
WordPressを中心とした自社のWebサイトの修正などを行なっている。

 

大石ゆかり

内容分かりやすくて良かったです!

田島悠介

ゆかりちゃんも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

 

TechAcademyでは、初心者でも、Ruby on Railsを使ったプログラミングを習得できる、オンラインブートキャンプを開催しています。

また、現役エンジニアから学べる無料体験も実施しているので、ぜひ参加してみてください。