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