# Select\_date

**URL:** <https://www.ruby-forum.com/t/select-date/178508>\
**Category:** IT\
**Created:** [November 5, 2009, 5:06pm UTC](https://www.ruby-forum.com/t/select-date/178508 "2009-11-05T17:06:18Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![miclab](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/a3d4f5/32.png) [@miclab](https://www.ruby-forum.com/u/miclab)\
**Post date:** [November 5, 2009, 5:06pm UTC](https://www.ruby-forum.com/t/select-date/178508/1 "2009-11-05T17:06:18Z")

</div>

Vorrei inserire una data in un form.  
Seguendo l’esempio  
([ActionView::Helpers::DateHelper](http://api.rubyonrails.org/classes/ActionView/Helpers/DateHelper.html#M001702))

\<% 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?

---

<div class="post-metadata">

**Author:** ![miclab](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/a3d4f5/32.png) [@miclab](https://www.ruby-forum.com/u/miclab)\
**Post date:** [November 5, 2009, 7:40pm UTC](https://www.ruby-forum.com/t/select-date/178508/2 "2009-11-05T19:40:38Z")

</div>

Il 05 novembre 2009 17.06, Michele C. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) 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

---

<div class="post-metadata">

**Author:** ![miclab](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/a3d4f5/32.png) [@miclab](https://www.ruby-forum.com/u/miclab)\
**Post date:** [November 6, 2009, 10:26am UTC](https://www.ruby-forum.com/t/select-date/178508/3 "2009-11-06T10:26:13Z")

</div>

Pietro G. wrote:

> Il 05 novembre 2009 17.06, Michele C. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) 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.

---

<div class="post-metadata">

**Author:** ![miclab](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/a3d4f5/32.png) [@miclab](https://www.ruby-forum.com/u/miclab)\
**Post date:** [November 6, 2009, 11:42am UTC](https://www.ruby-forum.com/t/select-date/178508/4 "2009-11-06T11:42:03Z")

</div>

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

Ciao Michele

---

<div class="post-metadata">

**Author:** ![miclab](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/a3d4f5/32.png) [@miclab](https://www.ruby-forum.com/u/miclab)\
**Post date:** [November 6, 2009, 2:10pm UTC](https://www.ruby-forum.com/t/select-date/178508/5 "2009-11-06T14:10:18Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![miclab](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/a3d4f5/32.png) [@miclab](https://www.ruby-forum.com/u/miclab)\
**Post date:** [November 7, 2009, 12:58am UTC](https://www.ruby-forum.com/t/select-date/178508/6 "2009-11-07T00:58:18Z")

</div>

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:

> <https://github.com/rails/rails/blob/main/activesupport/lib/active_support/locale/en.yml#L15>

e tutto ha ripreso a funzionare!!!

Ciao Michele.

---

<div class="post-metadata">

**Author:** ![miclab](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/a3d4f5/32.png) [@miclab](https://www.ruby-forum.com/u/miclab)\
**Post date:** [November 6, 2009, 1:46pm UTC](https://www.ruby-forum.com/t/select-date/178508/7 "2009-11-06T13:46:27Z")

</div>

Il 06 novembre 2009 10.26, Michele C. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) 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

---

<div class="post-metadata">

**Author:** ![miclab](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/a3d4f5/32.png) [@miclab](https://www.ruby-forum.com/u/miclab)\
**Post date:** [November 11, 2009, 6:31pm UTC](https://www.ruby-forum.com/t/select-date/178508/8 "2009-11-11T18:31:28Z")

</div>

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?
