# Presentazione e domandina da newbie

**URL:** <https://www.ruby-forum.com/t/presentazione-e-domandina-da-newbie/83307>\
**Category:** IT\
**Created:** [January 25, 2007, 12:17am UTC](https://www.ruby-forum.com/t/presentazione-e-domandina-da-newbie/83307 "2007-01-25T00:17:09Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![hangloose](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/h/c57346/32.png) [@hangloose](https://www.ruby-forum.com/u/hangloose)\
**Post date:** [January 25, 2007, 12:17am UTC](https://www.ruby-forum.com/t/presentazione-e-domandina-da-newbie/83307/1 "2007-01-25T00:17:09Z")

</div>

Che dire… Era da un po’ che giravo intorno a Ruby e dopo l’eccellente  
presentazione di Paolo D. al BarCamp di roma non ho resistito alla  
tentazione di installarlo e cominciare a “smanettarci”.

All’inizio Ã¨ stata un po’ dura sto seguendo i vari tutorial trovati in  
giro su internet, utilissimi anche se per qualche aspetto non completi.

Ho un problemino, non so se questo sia il topic giusto nel caso non lo  
fosse chiedo venia.

Questo Ã¨ il codice di una funzione che mi serve ad aggiungere i commenti  
a un piccolo forum che ho sviluppato.

Parte di home\_controller.rb:

def add\_message  
if request.post?  
topic=Topic.find(params[‘topic\_id’])  
message=Message.new(:body=\>params[‘body’])  
message.topic=topic  
message.author=find\_author()  
message.save  
if message.save  
flash[:notice] = “Commento aggiunto!”  
redirect\_to :action =\> “show”, :id =\> topic  
else  
flash[:notice] = “Errore devi inserire un commento!”  
redirect\_to :action =\> “show”, :id =\> topic  
end  
end  
end

Come noterete segnalo utilizzando il metodo “flash[]” il messaggio di  
avvenuto inserimento o errore. Funziona ma non Ã¨ completo. In caso di  
errore vorrei dare un messaggio piÃ¹ dettagliato. Come posso fare per  
passare al template (usando l’helper “error\_messages\_for” per esempio)  
un errore piÃ¹ dettagliato usando appunto il responso definito nel  
modello message.rb?

validates\_presence\_of :body,  
:message =\> “Devi inserire un messaggio”  
validates\_length\_of :body, :within =\> 1…1000

La complicazione maggiore Ã¨ quando debbo aggiornare dalla stessa form  
tabelle diverse a seconda dei campi. Cerco un modo per “unire” in  
un’unica stringa gli eventuali messaggi di errore che ricevo dai  
modelli.

Con l’occasione, avete degli indirizzi di qualche tutorial passo passo,  
cercavo qualcosa realizzare un piccolo catalogo prodotti!

A presto!  
Oliver

---

<div class="post-metadata">

**Author:** ![hangloose](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/h/c57346/32.png) [@hangloose](https://www.ruby-forum.com/u/hangloose)\
**Post date:** [January 25, 2007, 7:44am UTC](https://www.ruby-forum.com/t/presentazione-e-domandina-da-newbie/83307/2 "2007-01-25T07:44:43Z")

</div>

ciao,

Oliver Hl wrote:

> All’inizio Ã¨ stata un po’ dura sto seguendo i vari tutorial trovati in  
> giro su internet, utilissimi anche se per qualche aspetto non completi.

In alcuni casi itutorial rischiano di rimanere indietro rispetto  
all’evoluzione di rails (soprattutto con la 1.2 uscita in questi  
giorni). Poi se (come credo) passato lo stadio di “lettura dei tutorial”  
sarai ancora interessato, ti consiglio di prendere uno dei libri su  
Rails (controllando che siano aggiornati a Rails 1.2!).

> 

dunque se hai regole di validazione sui modelli Rails _automaticamente_  
le controlla ed inserisce i messaggi di errore (completi) nei modelli.  
A questo punto il modo piu semplice per stampare i messaggi nella pagina  
e’ usare: error\_message\_on oppure error\_messages\_for (qui il  
manuale:[Peak Obsession](http://api.rubyonrails.com/classes/ActionView/Helpers/ActiveRecordHelper.html#M000564)  
).

Per esempio: \<%= error\_messages\_for ‘message’ %\> stampa un div con una  
lista dei messaggi (a cui puoi applicare i tuoi stili). Ricordati solo  
di assegnare l’oggetto ad una variabile di istanza nel controller (  
@message = …) altrimenti non potrai avere accesso a questa nella vista

> La complicazione maggiore Ã¨ quando debbo aggiornare dalla stessa form  
> tabelle diverse a seconda dei campi. Cerco un modo per “unire” in  
> un’unica stringa gli eventuali messaggi di errore che ricevo dai  
> modelli.

io a volte ho fatto cosi (per avere maggior controllo sulla  
presentazione):

\<% for error\_msg in current\_user.errors.full\_messages %\>- \<%= error\_msg %\>
\<% end %\>

ciao,  
Luca

–

Web: [http://spazidigitali.com](http://spazidigitali.com) - [http://thetyper.com](http://thetyper.com)  
Email mailto://removed\_email\_address@domain.invalid  
Skype callto://l.mearelli
