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 = :warnScrivere 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
endQuando verrĂ chiamato tale metodo tutto verrĂ bloccato e, nella finestra di terminale dove ho lanciato il server, comparirĂ la shell byebug