LoginSignup
10
9

More than 5 years have passed since last update.

Ruby - pry導入編

Posted at

kotaziです。
- kotazi.com

Railsのデバッグについて調べていた。

pryを知った。便利そうだったことメモ書き。


Pryとは

pry

PryはRuby標準的なIRBシェルの強力な代替手段です。
シンタックスハイライトや、フレキシブルなプラグインアーキテクチャ、実行時の呼び出しやドキュメントの閲覧を備えています。

インストール

$ gem install pry pry-doc
$ pry

.ls, .pwdなどでShellコマンドを呼び出せる。

Railsプロジェクトに組み込む

RailsプロジェクトにPryを入れて、ブレークポイントやステップ実行が行えるようにした。

Gemfileを編集(参考:Railsの開発効率をあげる - Pryを使ってRailsのコンソールをパワーアップ & デバッグをする)

group :development, :test do
  gem 'pry-rails', '~> 0.3.4'  # rails console(もしくは、rails c)でirbの代わりにpryを使われる
  gem 'pry-doc', '~> 0.8.0'    # methodを表示
  gem 'pry-byebug', '~> 3.3.0' # デバッグを実施(Ruby 2.0以降で動作する)
  gem 'pry-stack_explorer', '~> 0.4.9.2' # スタックをたどれる
end

■ モデル確認

[12] pry(main)> show-models
Administrator
  id: integer
  email: string
  email_for_index: string
  hashed_password: string
  suspended: boolean
  created_at: datetime
  updated_at: datetime
StaffMember
  id: integer
  email: string
  email_for_index: string
  family_name: string
  given_name: string
  family_name_kana: string
  given_name_kana: string
  hashed_password: string
  start_date: date
  end_date: date
  suspended: boolean
  created_at: datetime
  updated_at: datetime

■ ルート確認

[13] pry(main)> show-routes
       Prefix Verb   URI Pattern              Controller#Action
   staff_root GET    /staff(.:format)         staff/top#index
  staff_login GET    /staff/login(.:format)   staff/sessions#new
staff_session POST   /staff/session(.:format) staff/sessions#create
              DELETE /staff/session(.:format) staff/sessions#destroy
   admin_root GET    /admin(.:format)         admin/top#index
  admin_login GET    /admin/login(.:format)   admin/sessions#new
admin_session POST   /admin/session(.:format) admin/sessions#create
              DELETE /admin/session(.:format) admin/sessions#destroy
customer_root GET    /customer(.:format)      customer/top#index
         root GET    /                        errors#routing_error
              GET    /*anything(.:format)     errors#routing_error

デバッグ

  • binding.pryを打ち込むとブレークポイントになる。
  • show-stackでスタックトレースを表示

参考URL


ものすごく便利だった。

10
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
9