Forum: Italian Ruby user group Presentazione e domandina da newbie

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Oliver H. (Guest)
on 2007-01-25 01:17
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
Luca M. (Guest)
on 2007-01-25 08:44
(Received via mailing list)
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:http://api.rubyonrails.com/classes/ActionView/Help...
).

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):

<ul>
<% for error_msg in current_user.errors.full_messages %>
<li><%= error_msg %></li>
<% end %>
</ul>

ciao,
Luca

--

Web:   http://spazidigitali.com - http://thetyper.com
Email mailto://removed_email_address@domain.invalid
Skype callto://l.mearelli
This topic is locked and can not be replied to.