##debugメソッド
アプリケーションの動作を確認するために、debugメソッドを使ってサイトのレイアウトにデバッグ情報を表示する。
app/views/layouts/application.html.erb
<body>
<div>
.
.
.
<%= render 'layouts/footer' %>
<%= debug(params) if Rails.env.development? %>
</div>
</body>
if Rails.env.development?
とすると、開発環境でのみデバッグ情報を表示できる。
debug(params)から生成されたhtmlには、.debug_dumpというbootstrap用のcssクラスが与えられているようである。
##byebugジェムとdebugger
byebugジェムと、それによって使用できるようになるdebuggerメソッドを使うと、アプリケーションの任意の位置でその状態を確認できるようになる。
byebugジェムを導入する。
Gemfile.rb
group :development, :test do
gem 'sqlite3', '1.3.13'
gem 'byebug', '9.0.6', platform: :mri
end
debuggerをアプリケーションの任意の位置に挿入する。
app/controllers/users_controller.rb
def show
@user = User.find(params[:id])
debugger
end
/users/1にアクセスすると、rails serverを立ち上げたコンソールにbyebugプロントが表示される。
(byebug)
Railsコンソールのようにコマンドを呼び出せる。
(byebug) @user.name
"Example User"
(byebug) @user.email
"example@railstutorial.org"
(byebug) params[:id]
"1"
用が済んだらCtrl+Dで終了し、debuggerメソッドを削除しておく。