前回 hirb を試していた時、ググっているとサジェストに pry
が出てきていました。
気になったので、こちらも試しました。
目次
参考
- github - pry/pry
- github - pry/pry - FAQ
- guthub - rweng/pry-rails
- github - deivid-rodriguez/pry-byebug
pry-rails の導入
前提
Rails アプリケーションを用意してある前提で進めます。
導入
Gemfile に以下を記述する。
1 | gem 'pry-rails' |
bundle install
を実行してインストール。
pry-rails を使ってみる
それでは、pry
を Rails Console で使ってみます。
既にusers
テーブルと、User
モデルがあるものとします。
1 | # Rails Console の開始 |
テーブル表示ではありませんが、適宜改行されて改行されているので hirb よりも見やすいです。
また、上記の記載ではわかりませんが実際のコンソールでは、適宜色が付くのでその点も irb よりもよいと感じます。
pry をデバッグに使う
byebug というライブラリがあり、例えばコントローラの処理の中でbyebug
と記述すると、コンソールの処理に移ることができるのだそうです。
このコンソール処理に pry を呼び出します。
pry-byebug を導入
Gemfile に以下を記述する。
1 | gem 'pry-byebug' |
bundle install
を実行してインストール。
pry-byebug を使ってみる
pry-byebug を使うには、ソースコードにbinding.pry
を記述します。
記述したコントローラは以下のようになります。
1 | class UsersController < ApplicationController |
上記が用意できたら、ルーティングを記述します。
bundle exec rails s
で起動してusers#index
が呼び出されるようアクセスします。
すると、以下のように表示されます。
1 |
|
コントローラの処理に戻ったことで、以下のようにブラウザに表示されます。
1 | {"users":[{"id":1,"name":"A","created_at":"2020-10-02T15:59:36.000Z","updated_at":"2020-10-02T15:59:36.000Z"},{"id":2,"name":"B","created_at":"2020-10-02T15:59:36.000Z","updated_at":"2020-10-02T15:59:36.000Z"},{"id":3,"name":"update C","created_at":"2020-10-02T15:59:36.000Z","updated_at":"2020-10-02T15:59:36.000Z"}]} |
C
の記述が書き換え後のupdate C
になってレスポンスが返りました。
hirb と pry の共存
また、Rails Console を pry に切り替えた時、Hirb.enable
で有効化しても動作しませんでした。
共存する方法が記載されていたので試します。
.pryrc
をプロジェクトルート(Gemfile が置かれている場所)に作成し、以下の取り記述します。
1 | begin |
用意できたらアプリケーションを再起動しusers#index
が呼び出されるようアクセスします。
すると、以下のように表示されます。
1 |
|
レコードの表示が、テーブル形式になりました。
今回は、(pry-rails,pry-byebug)を使用しての pry を使用してみました。
pry の利点を理解したというより、byebug が便利でしたというのが、今後 Rails 触っての理解かなと感じます。
ではでは。