Eccomi di nuovo con ulteriori modifiche apportate a Semilla.
Dal momento che il codice aggiunto comincia ad essere (relativamente) tanto, evito di postarlo sul blog limitandomi a citare i file sui quali sono intervenuto.
Anzitutto modifico il file config/routes.rb per fare in modo che la pagina di default sia account/signup.
Vi è la necessità di un layout “omogeneo” per tutte le pagine dell’applicazione, così imposto un file app/views/layouts/application.rhtml ed un opportuno foglio di stile (public/stylesheets/style.css). Durante lo sviluppo accedo spessp a questi file per adattare (in modo try-and-modify) il layout alle mie esigenze (man mano che le scopro!).
Adesso passo ad implementare della “logica”. Semplifico il form di signup in modo che chieda solo le informazioni minime per creare un account (indirizzo email e password); una volta efettuato il login sarà possibile editare il proprio profilo per modificare gli altri dati (first name, last name e screen name).
Lo screen name è un semplice nick da mostrare all’interno dell’applicazione al posto dell’indirizzo email, e per “invogliare” l’utente a modificarlo lo imposto inizialmente uguale proprio all’indirizzo email (v. metodo signup in app/controllers/account_controller.rb).
Per tenere traccia di questi nuovo campo devo aggiungere una colonna alla tabella users e così utilizzo una migration opportuna….e scopro che sqlite non supporta gli ALTER TABLE (mia ignoranza o cosa?). Comunque sia passo a MySQL…
Continuo impostando l’azione account/edit per permettere all’utente (loggato) di modificare i propri dati. Da notare l’utilizzo di un filtro per proteggere il tutto:
before_filter :login_required,
nly => [ :edit, :index, :logout ]
Infine implemento un task rake per fare in modo che il monkey-utente possa facilmente installare l’applicazione utilizzando un database MySQL (e qui facciamo un atto di fede…).
Il task si trova in lib/tasks/semilla.rake, probabilmente è migliorabile e non troppo rubyista infatti:
- non ho avuto modo di provarlo sotto Windows
- non salva una copia del file
config/database.yml prima di sovrascriverlo
Il task è invocabile da rake utilizzando $ rake semilla:mysql.
Intanto Semilla si presenta così
e non mi dispiace affatto!
Alla prossima!