【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)
更新日 : 2018年8月21日

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

レコードを追加する

コンソールからデータを追加するには、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

rake 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の使い方について忘れてしまったらこの記事を確認してくださいね!

おすすめのコンテンツ

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

「何の言語から勉強すればいいかわからない・・・」そんなあなたに質問に答えていくだけで、何の言語を学べば良いのか診断いたします!未経験から6ヶ月でプログラミング習得に向けた学習プランが1分で分かる!

現役フリーランスエンジニアによる無料体験レッスン実施中!

もし、あなたが、

  • 経験、年齢、学歴に不安がある
  • 挫折しない学習方法が知りたい
  • アプリ開発で困っている
  • エンジニアの”生”の声が聞きたい!
  • 仕事獲得の仕方がわからない
  • エンジニアに転職したいが何をすればいいかわからない

など、プログラミング学習やキャリアのことでお困りであれば、まずは『無料体験レッスン』にお申し込み下さい。

あなたにとって、最適の解決策をご提案させていただきます。

詳しくは下の画像から詳しいサービス内容をご確認ください。

cta_mtm3

非常識な結果を出す卒業生多数!

エンジニアキャリア戦略

人気記事セレクション

3000名以上来場の人気セミナーが開催決定

18歳で時給6000円だった侍エンジニア塾代表の木内より、『プログラミングで人生を変える』ための学習方法をお教えます。

0からプログラミングを習得し、フリーランスエンジニアになる方法プログラミング学習の効率を劇的に上げる学習メソッドを解説しますので、奮ってご参加ください。

  • 日付:4/20(土),4/27(土)
  • 時間:14:00〜17:35終了予定
  • 場所:当社 道玄坂オフィス
  • 住所:〒150-0043 東京都渋谷区道玄坂2丁目11-1 Gスクエア渋谷道玄坂 4F *Googleマップでは「東京都渋谷区道玄坂2丁目11-1」で検索してください。近隣にスクエア渋谷という別のビルがあるためご留意ください。
  • 参加費:無料
  • URL:https://seminar.sejuku.net/
詳しくは下の画像をクリックして弊社セミナー内容をご確認ください。

LINEで送る
Pocket

この記事が気に入ったら
いいね!をしてフォローしよう

最新情報をお届けします

書いた人

長瀬来

長瀬来

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

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

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

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

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

趣味は語学、読書です。