Posted by Dibi Store
Sun, 30 Sep 2007 19:35:00 GMT
In ruby on rails, è possibile configurare dei logger, che ci possono aiutare in molte situazioni. Un esempio chiarirà meglio il concetto:
def save
..
user.save
rescue ActiveRecord::RecordInvalid
logger.warn "L'utente ha fatto qualcosa che non sarebbe dovuta succedere"
end
Impostare i logger è veramente semplice, ed il risultato si potrà vedere nel log dell'applicazione, per esempio in /log/development.log, oppure direttamente nella finestra del server. Di seguito elenco i possibili stati che si possono assegnare al logger, dal meno grave, al piu grave:
- debug
- info
- warn
- error
- fatal
Posted in ruby on rails | Tags logger | no comments
Posted by Dibi Store
Sun, 30 Sep 2007 16:38:00 GMT
Come ogni framework, anche rails dispone di una versione di sviluppo, che viene comunemente chiamata EdgeRails.
Questa versione è destinata agli utenti che vogliono provare le nuove features del framework e giovare dei (auguro sempre non numerosi) bug fixes.
Come viene descritto nel link sopra, il metodo più semplice per usare EdgeRails, è quello di digitare da console, ipotizzando di essere nella root dell'applicazione:
rake rails:freeze:edge
Read more...
Posted in ruby on rails | Tags edgerails | no comments
Posted by Dibi Store
Sat, 29 Sep 2007 11:22:00 GMT
Quando creiamo meccanismi di autenticazione è buona norma salvare le password in hash, per limitare le possibilità che qualcuno possa decifrarle.
Limitarsi a questa precauzione però, non è sufficente. Infatti i parametri inviati in una richiesta, vengono comunque salvati nei file di log dell'applicazione, per fare una prova vi basterà effettuare qualche prova osservando i log del server, in questo caso mongrel.
Supponiamo di aver inviato una richiesta di login:
Processing SessionController#create (for 127.0.0.1 at 2007-09-29 13:17:46) [POST
]
Session ID: acfffc404b5073973612806ef118bbda
Parameters: {"commit"=>"invia", "action"=>"create", "controller"=>"session", "
login"=>"Oscar", "password"=>"secret"}
Read more...
Posted in sicurezza | Tags log | no comments
Posted by Dibi Store
Fri, 28 Sep 2007 08:59:00 GMT
Inizio oggi una nuova serie di articoli che si baseranno sui template RJS.
Questi particolari template, vengono usati spesso in ruby on rails, e quando vengono richiamati, restituiscono automaticamente un content-type uguale a text/javascript. Sono quindi l'ideale nelle nostre pagine dinamiche che usano Ajax.
Il vantaggio di questi template, è che possiamo aggiornare più elementi nella stessa pagina con un unica chiamata, di seguito illustro un esempio, per capire meglio il concetto. Notate che non serve specificare l'azione nel controller, in quanto rails è ebbastanza intelligente da capire di richiamare il file.
Read more...
Posted in ajax | Tags rjs | no comments
Posted by Dibi Store
Wed, 26 Sep 2007 07:26:00 GMT
Talvolta abbiamo bisogno di effettuare delle operazioni sulle date con php, ad esempio vogliamo aggiungere o togliere un giorno ad una determinata data, aggiungere una settimana alla data attuale, eccetera.
Per fare questo tipo di operazioni, useremo le due funzioni date() e mktime() di php. La prima permette di creare una data nel formato scelto (si veda la documentazione di date()), mentre la seconda ci permette di creare il suo timestamp, ovvero il numero di secondi dal primo gennaio 1970.
Read more...
Posted in php | Tags date, timestamp | no comments
Posted by Dibi Store
Mon, 24 Sep 2007 20:48:00 GMT
Oggi ho avuto un problema nel generare un array nel seguente formato:
[1, 'uno'],[2, 'due']
Il problema è banale e chiunque abbia un minimo di esperienza con gli array non avra problemi, io però non ci sono arrivato subito, e ho trovato aiuto nel canale #rub-lang nella rete azzurra-irc.
In pratica, supponendo che stiate lavorando in rails, ma anche in puro codice ruby è uguale, potete scrivere:
@array = Model.find(:all).collect { |s| "[#{s.id}, '#{s.name}']"}.join(',')
E il risultato è garantito! Prendeteci pure spunto per problemi simili nel generare array.
Posted in ruby on rails | Tags array, ruby | no comments
Posted by Dibi Store
Sun, 23 Sep 2007 12:46:00 GMT
Ajax indubbiamente migliora l'interfaccia e la user experience. In questo articolo vedremo come, grazie ai template RJS è possibile aggiornare un menu a drop-down, dopo aver inserito in modo dinamico un elemento nella lista.
L'esempio tipico lo si può trovare quando stiamo scrivendo un articolo nel nostro blog, e arrivati alla fine, scopriamo che la categoria in qui vorremmo inserirlo non è presente, e vorremmo quindi creala in maniera dinamica.
Read more...
Posted in ruby on rails | Tags ajax | 1 comment
Posted by Dibi Store
Sun, 23 Sep 2007 12:33:00 GMT
Oggi stavo cercando un modo semplice per costruire i miei permalink. Mi sono imbattuto in questo plugin molto semplice e utile.
Non servono spiegazioni dato che è semplicissimo da usare... Che dire: perchè scrivere codice quando è gia pronto?
Posted in ruby on rails | Tags plugin, rails | no comments
Posted by Dibi Store
Sun, 23 Sep 2007 09:08:00 GMT
Se siamo in procinto di applicare una nuova feature ad un nostro prodotto, è buona norma considerare alcuni aspetti fondamentali.
Per capire appieno le potenzialità di questo articolo, è bene dare un occhiata ai capitoli introduttivi di Getting Real, il libro della web company 37Signals
In particolare prenderò in esame il capitolo 5, chiamato appunto 'hidden costs', che spiega in modo chiaro quali siano i passi da seguire quando si vuole implementare un nuovo aspetto nella nostra applicazione.
Read more...
Posted in web marketing | no comments
Posted by Dibi Store
Sat, 22 Sep 2007 13:36:00 GMT
Ruby on rails è un framework eccezzionale. Tra i tanti vantaggi ci permette di gestire gli errori degli utenti nei form in un modo eccezzionale. L'unica pecca è che il framework è scritto in lingua inglese, e tutti i messaggi di errore sono ovviamente scritti in lingua anglosassone.
Ovviamente il rimedio esiste, ed è veramente semplice, vi basterà infatti aggiungere questo codice nel vostro modello:
validates_presence_of :name, :message => "Non può essere vuoto"
Read more...
Posted in ruby on rails | Tags rails | no comments