Jscalendar (formato italia) in rails

ho sprecato un giorno su sta menata…
però è l’unico modo per imparare. sbattere la testa.(mamma che sintassi
però)
vi presento l’utilizzo.
magari mi date consigli x migliorare.
magari non vi interessa. do’ il mio contrib.

uso il plugin datetime_toolbocks. ho seguito la procedura. semplice.
ometto.
2)
nella view al posto di:

<%= date_select ‘attivita’, ‘inizio’ %>
<%= date_select ‘attivita’, ‘fine’ %>

<%= toolbocks_date_select :attivita, :inizio, { :format => ‘dd/mm/yyyy’,
:autoRollOver => false, :value => date_eng_to_ita(@attivita[:inizio]) ,
:help => false } %>
<%= toolbocks_date_select :attivita, :fine, { :format => ‘dd/mm/yyyy’,
:autoRollOver => false, :value => date_eng_to_ita(@attivita[:fine]) ,
:help
=> false } %>

qui ho usato un metodo che ho inserito nell’application helper. la data
mi
arriva in formato inglese (campo date oracle). la trasformo in italiano.

def date_eng_to_ita(date)
date.strftime("%d/%m/%Y")
end

invio il form.

prima di far arrivare i dati al model (la data passata da jscalendar non
arriva al model per via del formato diverso [penso])
… converto in inglese
così.
nel controller

sul create

param = params[:attivita]
param[:inizio] = date_ita_to_eng param[:inizio]
param[:fine] = date_ita_to_eng param[:fine]
@attivita = Attivita.new(param)

qui uso un metodo che ho messo nell’application controller.

def date_ita_to_eng(str)
ret = Date.strptime(str, “%d/%m/%Y”)
ret.strftime("%Y-%m-%d")
end

sull’update cambia niente.

che dite? è corretto?
metodo nell’helper per la view
metodo nell’application controller per il controller

avete già usato il jscalendar per progetti rails?

ciao e grazie per eventuali migliorie e consigli.

Ciao io ho perso la maggior parte del tempo a capire come cavolo
formattare le date :wink:

E la soluzione è molto simile alla tua, nelle viste ho usato
data.strftime("%d-%m-%Y") direttamente senza creare un helper mentre per
il passaggio inverso ho usato Time.parse(data.to_s).
Io come DB ho usato MySql e quando salvavo senza time.parse non riusciva
ad unificare con i campi del db.

Ho provato con le solite storie del globalize e poi con altri codici nel
application che ti convetono direttamente le date … ma spesso non
funzionavano, altre volte funzionavano nelle viste, ma poi quando
salvavo nel db dovevo rifare la conversione.

ciao spero di esserti stato utile.

Il 11/07/07, Roger 83 [email protected] ha scritto:

Ciao io ho perso la maggior parte del tempo a capire come cavolo
formattare le date :wink:

come hai risolto il fatto che scrivendo una stringa non data

ArgumentError in AttivitaController#create

invalid date

ho provato un plugin per validare la data sul model ma non mi sembra
funzionare… o meglio a me non funziona.

era una “niubbiata”.
non saper ancora intercettare gli errori!
vabbe mi sa che mi devo leggere un po’ di programming ruby prima di
altri
esperimenti!

ho risolto
così.quando l’utente scrive sul textfield “testopuro o data non valida”
prima di passare i dati al model parso il parametro
così.
def date_ita_to_eng(str)
begin
ret = Date.strptime(str, “%d/%m/%Y”)
ret.strftime("%Y-%m-%d")
rescue ArgumentError
ret = Date.today
ret.strftime("%Y-%m-%d")
end
end

bello il return con la data odierna! bello proprio.

qualcuno cantava
“por la carretera”