Viste
Un metodo grezzo per il debugging Γ¨ printare nelle viste gli oggetti a cui far riferimento, per far ciΓ² esistono due metodi
<%= debug @article %>
debug
Fornisce un tag <pre>
che renderizzerΓ² lβoggetto usando come formato YAML.
inspect
utile per visualizzare i valori degli oggetti, specialmente hash o array
<%= [1, 2, 3, 4, 5].inspect %>
File di log
PuΓ² essere utile inoltre salvare informazioni in file di log in runtime, Rails crea dei file di log separati per ogni ambiente. Nel file ci configurazione dellβambiente scrivere
Rails.logger = Logger.new(STDOUT)
verrΓ scritto un log nella cartella Rails.root/log/
.
Log level
Ad ogni print del log viene associato un livello, i livelli disponbili sono :debug
, :info
, :warn
, :error
, :fatal
Di default, tutti i log sono di livello :debug
ma Γ¨ possibile cambiarlo inserendo questa config nellβinitializer dellβambiente.
config.log_level = :warn
Scrivere nel log
Per scrivere nel logo posso usare la funzione logger
in un controller, model o mailer.
logger.debug "Person attributes hash: #{@person.attributes.inspect}"
logger.info "Processing the request..."
logger.fatal "Terminating application, raised unrecoverable error!!!"
Byebug
Byebug Γ¨ una gem che permette di inserire breakpoint nel codice e conseguentemente utilizzare un debugger per risolvere i problemi.
Utilizzando il metodo byebug viene lanciata una shell byebug
interattiva.
class PeopleController < ApplicationController
def new
byebug
@person = Person.new
end
end
Quando verrΓ chiamato tale metodo tutto verrΓ bloccato e, nella finestra di terminale dove ho lanciato il server, comparirΓ la shell byebug