先輩に質問したとき困らないようにこれだけは知っておけ的デバッグコマンド
Rubyの試しうち
nodeはnode
と打てばよかったけど、
rubyは ruby
じゃなくて irb
! (Interactive Rubyの略らしい)
exitかCtrl+Dで戻ります
$ irb
irb(main):001:0> 1 + 1
=> 2
$ irb
irb(main):001:0> ''.empty?
=> true
irb(main):002:0> exit
コンソールで試してみて
rails console
(エイリアスは rails c
)
↑のirbと同じ。対話形式で、Railsアプリケーションとやり取りができます
exitかCtrl+Dで戻ります
$ rails console
irb(main):005:0> User
=> User(id: integer, uuid: string, created_at: datetime, updated_at: datetime)
データベースはどうなってる?
rails dbconsole
(エイリアスは rails db
)
データベースの中身を確認します。
これはMySQLの例です
$ rails dbconsole
mysql > show tables; # テーブル一覧
mysql > show columns from users; # usersテーブルのカラム一覧
mysql> select * from users; # usersのデータ一覧
パスはどうなってる?
rails routes
config/routes.rb
で定義した全ルーティングを確認するときに役立ちます
$ rails routes
users GET /users(.:format) users#index
POST /users(.:format) users#create
new_user GET /users/new(.:format) users#new
edit_user GET /users/:id/edit(.:format) users#edit
変数の中身は?
pry-byebug
を使えば、binding.pry
を記述した地点での変数の中身を確認したり、その地点からステップ実行をしたりできます。つまりブレークポイントを打つことができる。
例えば、このようなコード(適当)を実行すると
def test
hoge = 1
binding.pry
hoge = 2
hoge = 3
end
↓のようにコンソールで対話形式によって値を確認できます。
実際はシンタックスハイライトもついてとても見やすい!
nextで次の行へ移動、exitで戻ります
6: def test
7: hoge = 1
8: binding.pry
=> 9: hoge = 2
10: hoge = 3
11: end
pry> hoge
=> 1
pry> next
6: def show
7: hoge = 1
8: binding.pry
9: hoge = 2
=> 10: hoge = 3
11: end
pry> hoge
=> 2
pry> exit;
使い方はこちら
pry-byebugでrubyをデバッグする - Qiita