【Rails入門】consoleの使い方まとめ

こんにちは! フリーエンジニアの長瀬です。

みなさんはconsoleを使っていますか?

consoleを使いこなせるようになれば、たくさんの便利な機能があるので、開発効率を上げてくれること間違いなしです。

この記事では、consoleの使い方について

・consoleとは
・consoleで簡単な計算をしてみよう
・環境を指定して起動する方法
・名前付きルートのURLを確認する
・logの出力をカスタマイズする方法

という基本的な内容から、

・データベースを操作する方法
・pryのインストール方法
・pryの便利なコマンドまとめ

といった応用的な内容についても解説していきます。

consoleとは

consoleを使えばrubyのプログラムを実行できたり、データベースを直接的に操作できたりとさまざまな便利なことができます。

また標準のconsoleのツールであるirbからpryに変更すれば、高速にルーティングや、モデルの内容を確認できるようになったりと機能が拡張できるのでとても使い勝手が良くなります。(pryの導入については後半に説明します)

このようにconsoleには様々なメリットがあるので、使いこなすことはRailsで開発していく上で必須のスキルです。

なので、この記事を読んでしっかりと使い方をマスターしておきましょう。

consoleで簡単な計算をしてみよう

では、consoleを使って簡単な計算をしてみましょう。

コマンドプロンプトに以下のコードを入力してください。

このようにrails consoleと入力するとコンソールを起動できます。
また、終了するときは quitまたはexitでコンソールを閉じることができます。

そして、rails consoleはrails cと省略できるので、特別な理由がない限りはrails cと入力するようにしてください。

それでは、コンソールを開いた上で以下のコードを入力してみてください。

10までの数字を羅列するコードです。

[実行結果]

このように基本的な計算ができました。
この例に限らず、他の計算ももちろんできるので色々と試してみてください。

logの出力をカスタマイズする方法

Railsでは、ログのフォーマットを変更することができます。
詳しくはこちらの記事を参考にしてみてください。

【Rails入門】loggerの使い方まとめ
更新日 : 2017年6月30日

名前付きルートのURLを確認する

さて、consoleでは名前付きのルートのURLを確認することができます。

まずは名前付きのルートを作成するためにscaffoldを使って、テンプレートのアプリを作成しましょう。

scaffoldについてわからない人こちらの記事を確認してください。

【Rails入門】初めてのWebアプリ開発ならscaffoldが最短!
更新日 : 2018年8月21日

こちらのコードをコマンドプロンプトに入力してください。

[実行結果]

今回の説明に必要なファイルを作成することができました。

tomatoes_pathという名前つきルートが作成されているので、rails cでコンソールを開いた後に以下のコードを入力してください。

[実行結果]

このようにルーティングを確認できました。

また、以下のようにURLを求めることもできます。

[実行結果]

環境を指定して起動する方法

consoleでは実行環境を選択することができます。
デフォルトでは開発環境(development)になっています。

確認してみましょう。

コマンドプロンプトに以下のコードを入力してください。

[実行結果]

本番環境とテスト環境でconsoleを開く方法は以下の通りです。

また、sandboxを使えば、consoleを使用してもデータベースを最後に元の状態に戻すことができます。

なので、データベースを変更したくないときにはconsoleにsamdboxを指定してください。

sandboxを指定するには以下のようにします。

ためしに、さきほど作成したTomatoにデータを追加してみましょう。
rails c –sandboxを入力した後に以下のコードを入力してください。

そして、quitかexitでconsoleを終了してください。

すると、

のように出力され、データベースの変更がなかったことになったことがわかります。
(rollbackは巻き戻す、transactionはデータの変更の意味です。)

rollbackについて、理解を深めたい方はこちらの記事も参考にしてみてください。

【Rails入門】saveがすべて成功したことを保証する(transaction)
更新日 : 2019年5月28日

データベースを操作する方法

レコードを追加する

コンソールからデータを追加するには、createコマンドを使うと便利です。
先ほどscaffoldで作成したTomatoモデルに値を追加してみましょう。

rails cでコンソールを起動した後以下のコードを入力してください。

これで、3件の新しいデータを追加できました。

レコードを削除する

先ほど追加したデータを削除してみましょう。

rails cでコンソールを起動した後以下のコードを入力してください。

find(idの数字)では、idによってレコードを取得できます。
それにdestroyをチェーンさせることで、任意のデータを削除できます。

この場合は3番目の”千利休”が削除されました。

ちなみに関連テーブルを含めずにすべて削除する場合は

で、関連テーブルごとすべて削除する場合は

を使用してください。

テーブルの内容を確認する

consoleでは、データベースのテーブルの中身を確認できます。

このように、whereメソッドなども使用できます。

whereと,findはこちらの記事で、丁重に説明してありますので、参考にしてください。


しっかり使い分け!Railsでのfind, find_byの違い、使い方
更新日 : 2017年12月18日

pryを導入する

pryとは

pryとは、標準のirbよりも機能的にすぐれた対話型ツールです。

なので、よほどの理由がない限り標準のirbでconsoleを使用するよりもpryを使用するようにしてください

pryを使えば、デバックがしやすくなったり(pry-byebug)、細かい動きを確認できるコマンドがたくさん使えるようになって、開発に超便利です。

pryのインストール方法

railsでpryを使用するにはpry-railsというgemをインストールする必要があります。
なので、Gemfileに以下のように追加してください。

追加できたら、bundle installを入力してgemを有効にしてください。

完了したら、rails cでコンソールを起動してpryと表示されるのを確認してください。

(今回はpry-stack_explorerやpry-byebugの使い方を紹介しませんが,それぞれpryを使う際には重宝するgemなのでついでに記載しました。)

pryの基本的なコマンドまとめ

show-model

show-modelは特定のモデルのカラム、データタイプを返します。

[実行結果]

show-models

すべてのモデルとそのカラム、データタイプを返します。

show-routes

rails routesよりも高速にルーティングを確認できる

show-middleware

アプリケーションで使用しているミドルウェアの一覧を表示

reload!

Rails環境全体をリロードする
いちいちconsoleをquitやexitする必要がなくなるので便利です。

recognize-path

ルーティングを確認できる(コントロールとアクションを出力する)

[実行結果]

find-method

find-methodではキーワードによって、メソッドを検索してくれます。

このように入力すると”form_”を含むメソッドが検索結果として返されます。
関連したメソッドを調べるときなどにも重宝します。

help

helpで、pryのメソッドを確認できる
かなり詳細に説明があるので、役に立ちます。

ドキュメントを参照する

pry-docをインストールしていれば、ri (定義されたもの) でドキュメントを参照できます。

ls cd

cdでオブジェクトに移動できて、lsでオブジェクトのメソットや変数を確認できる

特別なローカル情報

_で一つ前の結果を利用する

この場合_には36が代入されています。

_ex_
一つ前に発生した例外を返します。

_in__out_
pryの実行番号によって入力値と出力を再利用します。

tabでのコード補完

たとえば、cだけ入力してtabキーを押すと以下のように候補一覧が表示されます。

pryでHirbを自動化する

こちらの記事ではpryを使って、Hirbという表形式でconsoleにデータを追加できるgemを有効にするためのコードを自動化する方法を紹介しています。

まだの方はHirbの設定をしておくことをオススメします。

まとめ

いかがでしたでしょうか?

この記事では、consoleの使い方を解説しました。

consoleを使えば、rubyのコードが直接実行できたり、データベースを操作できたりと便利なことを理解いただけたと思います。

また、pryを導入すれば標準のconsoleを拡張してさらに便利な機能を加えられるので、Railsを使用する際には必ずインストールしておいてください。

pryのメソッドには今回紹介した以外にも、自分でメソッドを作成する機能など紹介しきれなかったものもありますので、気になる方はpryについて調べてみてください。

もしconsoleの使い方について忘れてしまったらこの記事を確認してくださいね!

経験豊富なエンジニアに相談したいあなたへ

「IT業界の実情についてエンジニアの生の声を聞きたい、既にIT業務の仕事をしていて解決したい課題があるから相談にのってもらいたい」そんな要望はございませんか?

周りにエンジニアをやっている人がいないと、実際の現場のことがイメージできず不安ですよね。

侍エンジニア塾の無料体験レッスンでは、ご質問内容によって「現役エンジニア」があなたの開発したいサービスへ技術的なアドバイスや、未経験から内定を獲得する転職活動の極意をお伝えいたします。

下記の無料体験レッスン予約カレンダーよりお申し込みいただけます。あなたのご相談を心よりお待ちしております。

LINEで送る
Pocket

書いた人

長瀬来

長瀬来

Unityを使ったiOSアプリのリリース、フリマサイト運営の経験があります。

経験した言語はC、C#、Javascript、R、Python、Ruby、PHPなど

言語が好きで、英語や中国、ドイツ語を勉強しました。
将来的には海外で生活したいです。

現在はRuby on Rails5やCocos2dxの勉強を主にしています。

ライターとしては
できるだけ初心者にわかりやすい文章になるように心がけています。

趣味は語学、読書です。

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説