Select_date

Vorrei inserire una data in un form.
Seguendo l’esempio
(ActionView::Helpers::DateHelper)

<% my_date = Time.today %>
<%= select_date my_date, :order => [:year, :month,:day ] %> <%= my_date
%>

Il giorno e l’anno vanno benone, il mese no. 32?
Che mese è? Controllo l’elenco e ho:
114
97
110
115
108
97
116
105
111
110
32
109

Sono 12 per carità il numero di mesi è corretto… ma i valor lasciano
un po a desiderare.

Avete qualche idea?

Il 05 novembre 2009 17.06, Michele C. [email protected] ha
scritto:

114
109

Sono 12 per carità il numero di mesi è corretto… ma i valor lasciano
un po a desiderare.

Avete qualche idea?

Questo ti suggerisce niente?

[114, 97, 110, 115, 108, 97, 116, 105, 111, 110, 32,
109].map(&:chr).join ‘’
risultato: “ranslation m”

La mia impressione è che ci sia un ciclo in una stringa anziché in una
lista, o qualcosa del genere.

Controlla, magari stai assegnando la cosa sbagliata da qualche parte.

pietro

Pietro G. wrote:

Il 05 novembre 2009 17.06, Michele C. [email protected] ha
scritto:

114
109

Sono 12 per carit� il numero di mesi � corretto… ma i valor lasciano
un po a desiderare.

Avete qualche idea?

Questo ti suggerisce niente?

[114, 97, 110, 115, 108, 97, 116, 105, 111, 110, 32,
109].map(&:chr).join ‘’
risultato: “ranslation m”

La mia impressione � che ci sia un ciclo in una stringa anzich� in una
lista, o qualcosa del genere.

Controlla, magari stai assegnando la cosa sbagliata da qualche parte.

pietro

Se guardi il codice, non c’è niente tra l’assegnazione della variabile
my_date e la select_date.
P.S. il codice che hai postato mi da un errore :
TypeError: wrong argument type Symbol (expected Proc)

Ciao Michele.

Ho aggiunto, nella vista la visualizzazione della variabile:
<%= my_date %>
Il risultato :
Fri Nov 06 00:00:00 +0100 2009

Ciao Michele

Time.now -> Fri Nov 06 14:09:31 +0100 2009
Time.cuurent -> 2009-11-06 13:08:53 UTC
Time.today -> Fri Nov 06 00:00:00 +0100 2009

Il comando con a fianco il risultato. Purtroppo il mese è sempre
sbagliato.

Non so proprio dove sbattere la testa.

E’ il plugin restful-authentication-i18n.
Come ho fatto a scoprirlo? Semplicemente creando un progetto nuovo e in
una vista (l’unica che ho creato nel progetto nuovo) ho inserito il
codice che mi dava errore e funzionava (con Date.current)
Ho installato il plugin e il codice ha smesso di funzionare.
Soluzione:
nella cartella /config/locales/, il plugin installa due nuove voci,
en_US.yml e de-DE.yml
Il progetto viene internazionalizzato con en_US, e in questo file manca
la traduzione delle date, detto fatto, ho copiato il codice da qua:

e tutto ha ripreso a funzionare!!!

Ciao Michele.

Il 06 novembre 2009 10.26, Michele C. [email protected] ha
scritto:

Se guardi il codice, non c’è niente tra l’assegnazione della variabile
my_date e la select_date.

<% my_date = Time.today %>

È specifico della 1.8.6? Io al momento ho la 1.9 (qui a casa ho fatto
un casino, ho installato 4 versioni diverse e ora non ho più la 1.8.6,
devo reinstallarla) e mi dice che today non sa cosa sia; ho scritto
Time.now e funziona perfettamente.

Prova un po’.

P.S. il codice che hai postato mi da un errore :
TypeError: wrong argument type Symbol (expected Proc)

Sì, questo succede con irb 1.8.6, se invece lo esegui nella console di
rails funziona, idem in irb 1.9.

Questo perché la 1.9 introduce la possibilità di passare al metodo map
un simbolo, nel qual caso viene eseguito il metodo con quel nome
sull’oggetto, mentre nella 1.8.6 bisognava passare una Proc.
Anche in rails hanno incluso questa funzionalità di map.

Puoi riscriverlo
così:[114, 97, 110, 115, 108, 97, 116, 105, 111, 110, 32, 109].map {|x|
x.chr}.join ‘’

pietro

Altro giro altro regalo!!!
Nel mio model ho
def self.maxDateIssue
if InvoiceHeader.maximum(‘dateissue’)
InvoiceHeader.maximum(‘dateissue’)
else
Time.today
end
end

nel controller ho
@lastInvoice = InvoiceHeader.maxDateIssue

nella view ho
<%= select_date @lastInvoice, :order=>[ :day, :month, :year] %> <%=
@lastInvoice %>

… e mi si presentano questo scenario nei combo
30 November 2009
e la data visalizzata è 2009-10-30

se cambio l’order in [ :month, :day, :year]
la data dei combo mi risulta corretta:
October 30 2009

Idee? E’ sempre legato all’internalizzazione?