Inserimento record nel database via form

Database: mysql. Tabella: learned_things. Modello: LearnedThing.

Qui la form nella vista:
<%= form_tag :action=>“add”, :method=>“post” %>
<%= hidden_field “learnedthing”, “learned_on”,
:value=>Date.new.strftime(“YmdHis”) %>
Testo <%= text_field “learnedthing”, “content”, “maxlength”=>250,
“size”=>60 %>

<%= submit_tag “Aggiungi” %>
<%= end_form_tag %>

Qui l’azione “add”
def add
if request.post?
elem = LearnedThing.new(params[:learnedthing])
flash[:error] = “Impossibile aggiungere l’ elemento nel database”
unless elem.save
else
flash[:error] = “Impossibile elaborare la richiesta”
end
redirect_to :action=>“index”
end

Mi ritorna: Impossibile aggiungere elemento l’ nel database

Roberto C. wrote:

Mi ritorna: Impossibile aggiungere elemento l’ nel database

Si comporta bene.

<%= hidden_field "learnedthing", "learned_on",

:value=>Date.new.strftime(“YmdHis”) %>

L’errore sta nel formato che passi al metodo strftime (della classe
Time), devi usare il simbolo ‘%’, controlla la doc per maggiori
dettagli.

Nel caso specifico, l’errore è dovuto al fatto che cerchi di inserire in
un campo date (o datetime) qualcosa che non lo è, quindi l’inserimento
fallisce.

Nico

io ho sostituito con
Date.new.strftime("%Y%m%d").to_s

però il comportamento è lo stesso.

Non c’è modo di avere maggiori informazioni sull’errore?

Roberto C. wrote:

io ho sostituito con
Date.new.strftime("%Y%m%d").to_s

Time.now.strftime("%Y%m%d")

Prima ti ho scritto che strftime appartiene alla classe Time…

Nella doc che ho sottomano, nella classe Date non esiste strftime, ma
strptime e, a giudicare dal comportamento, mi sembra come se in qualche
modo stessi utilizzando quella, forse è un alias.

Di questi errori ti accorgi subito se usi la console (e/o irb) e provi a
simulare un inserimento a mano, in questo modo ottieni anche messaggi di
errore più significativi.

Nico

Grazie, ho risolto con

Date.today.to_s

ma perchè “passare” la data odierna via POST? non puoi recuperarla
nell’action?

Il 06/04/07, Roberto C. [email protected] ha scritto:

[email protected]
http://lists.ruby-it.org/mailman/listinfo/ml


everything has got to end sometime we were satellites drifting off into
space
vega 4 - burn and fade away

giustissimo :smiley:

Il 06/04/07, Domenico Delle S. [email protected] ha scritto:

Nico


Ml mailing list
[email protected]
http://lists.ruby-it.org/mailman/listinfo/ml


everything has got to end sometime we were satellites drifting off into
space
vega 4 - burn and fade away

On Ven, Aprile 6, 2007 10:09, tarini wrote:

ma perchè “passare” la data odierna via POST? non puoi recuperarla
nell’action?

Hai pienamente ragione ed ora che ci penso, potrebbe utilizzare i campi
“magici” di AR e lavarsene completamente le mani: created_(at/on)
updated_(at/on).

Nico

Non c’è modo di avere maggiori informazioni sull’errore?

Una cosa veloce sarebbe:

p elem.errors