railsのデバッグ周りの環境整備
みなさんこんにちは、新人の意識高丸です。
今回はRailsのデバッグ環境周りを整備してみました。
## エラー画面を見やすくする「better_errors」
無機質なRailsの標準のエラー画面が以下のように見やすくなります。
“` Gemfile
group :development, :staging do
gem ‘better_errors’ #追加
end
“`
## エラー画面上でREPLが使えるようになる「binding_of_caller」
rails cで出来るような対話的な実行がエラー画面上から行えるようになります
“`Gemfile
group :development, :staging do
gem ‘better_errors’
gem ‘binding_of_caller’ #追加
end
“`
## railsのコンソールを便利にする「pry-rails」
pry-railsを導入するとrailsのコンソール起動時にpryが起動するようになり、pryやpry-railsの便利な機能が使えます
pry-railsはpryに依存しているので下記のようにするとpryも同時にインストールされます
“`Gemfile
group :development, :staging do
gem ‘better_errors’
gem ‘binding_of_caller’
gem ‘pry-rails’ #追加
end
“`
### ブレークポイントをいれる事も可能
プログラム中に以下の記述をすると、ブレークポイントをいれてプログラムを止めることができます
“`
# GET /boards
# GET /boards.json
def index
@boards = Board.all
pry.binding
end
“`
このように「pry.binding」と記述することでその位置でプログラムを止めてコンソールを使うことができます
“`
Started GET “/boards” for 127.0.0.1 at 2014-03-04 09:28:21 +0900
Processing by BoardsController#index as HTML
[1] pry(#)> p @boards
Board Load (0.3ms) SELECT “boards”.* FROM “boards”
#]>
=> [#]
[2] pry(#)> Board.all
CACHE (0.0ms) SELECT “boards”.* FROM “boards”
=> [#]
“`
### ルーティングを表示
show-routesでルーティングを表示できます
“`
pry(main)> show-routes
Prefix Verb URI Pattern Controller#Action
positions GET /positions(.:format) positions#index
POST /positions(.:format) positions#create
new_position GET /positions/new(.:format) positions#new
edit_position GET /positions/:id/edit(.:format) positions#edit
position GET /positions/:id(.:format) positions#show
PATCH /positions/:id(.:format) positions#update
PUT /positions/:id(.:format) positions#update
DELETE /positions/:id(.:format) positions#destroy
stickies GET /stickies(.:format) stickies#index
POST /stickies(.:format) stickies#create
new_sticky GET /stickies/new(.:format) stickies#new
edit_sticky GET /stickies/:id/edit(.:format) stickies#edit
sticky GET /stickies/:id(.:format) stickies#show_______
“`
### モデルを表示
show-modelsでモデルを表示できます
“`
pry(main)> show-models
Board
id: integer
name: string
created_at: datetime
updated_at: datetime
Position
id: integer
board_id: integer
sticy_id: integer
kpt_type: integer
sequence: integer
created_at: datetime
updated_at: datetime
Sticky
id: integer
memo: string
deleted: boolean
created_at: datetime
updated_at: datetime
“`
## pryのデバッグでステップ実行などを行なえる「pry-debugger」
ステップ実行などが出来るようになります
“`Gemfile
group :development, :staging do
gem ‘better_errors’
gem ‘binding_of_caller’
gem ‘pry-rails’
gem ‘pry-debugger’ #追加
end
“`
以下のように定義するとショートカットを使えます
“`~/.pryrc
if defined?(PryDebugger)
Pry.commands.alias_command ‘c’, ‘continue’
Pry.commands.alias_command ‘s’, ‘step’
Pry.commands.alias_command ‘n’, ‘next’
Pry.commands.alias_command ‘f’, ‘finish’
end
“`
## ルーティングをブラウザで表示できる「sextant」
sextantを導入すると、ルーティングをブラウザ上で確認できます。
“`Gemfile
group :development, :staging do
gem ‘better_errors’
gem ‘binding_of_caller’
gem ‘pry-rails’
gem ‘sextant’ #追加
end
“`
`http://localhost:3000/rails/routes`にアクセスしてルーティングを確認できます。
他にもたくさんのGemがあるようなので少しずつ検証していきたいと思います
これらの内容は以下のページに先輩にまとめてもらいました。
http://qiita.com/kanekomasanori@github/items/e705d6b9fbfd6de6c63f
Rubyについて日々勉強している新人エンジニアです。初心者向けRuby勉強会のレポートなどを投稿していきます。
TAG
- Android
- AWS
- Bitrise
- CodePipeline
- Firebase
- HTML
- iOS
- IoT
- JavaScript
- KPI
- Linux
- Mac
- Memcached
- MGRe
- MGReのゆるガチエンジニアブログ
- MySQL
- PHP
- PICK UP
- PR
- Python
- Ruby
- Ruby on Rails
- SEO
- Swift
- TIPS
- UI/UX
- VirtualBox
- Wantedly
- Windows
- アクセス解析
- イベントレポート
- エンジニアブログ
- ガジェット
- カスタマーサクセス
- サーバ技術
- サービス
- セキュリティ
- セミナー・展示会
- テクノロジー
- デザイン
- プレスリリース
- マーケティング施策
- マネジメント
- ラボ
- リーンスタートアップ
- 企画
- 会社紹介
- 会社紹介資料
- 勉強会
- 実績紹介
- 拡張性
- 採用
- 日常
- 書籍紹介
- 歓迎会
- 社内イベント
- 社員インタビュー
- 社長ブログ
- 視察
- 開発環境