Forum: Italian Ruby user group Date e valuta in italiano.

B0f6d8efcf671ea3163449e231264cc4?d=identicon&s=25 Msan Msan (msan)
on 2012-04-25 13:20
(Received via mailing list)
Ho un form con campi per l'inserimento di date e valori rappresentanti
euro.
L'inserimento delle date lo faccio in un campo di tipo string e
utilizzo jquery-ui, mi visualizza il calendario attraverso il quale
l'utente seleziona la data.
Al momento della selezione nel campo viene inserito ad esempio,
24/04/2012.
Nel db viene memorizzato 2012-04-24 ed e' questa stessa
rappresentazione che vedo nel capo string quando richiamo il form, ad
esempio per una modifica.
Vorrei che l'utente non si ritrovasse 2012-04-24 ma 24/04/2012 o
24-04-2012, insomma la data in formato italiano.
Anche per i valori rappresentanti euro l'utente e' costretto ad
inserire i dati separando i centesimi con il punto anziche' con la
virgola, e' corretto perche' tali valori sono indicati come decimal ma
per l'utente e' piu' normale separare i decimali utilizzando la
virgola.
L'unico modo sarebbe quello di intercettare i valori e convertirli in
qualche modo?
6dbddfda34303f8d83620f7293612671?d=identicon&s=25 Tommaso Visconti (Guest)
on 2012-04-25 20:51
(Received via mailing list)
Il 25/04/12 13:19, Mauro ha scritto:
> Anche per i valori rappresentanti euro l'utente e' costretto ad
> inserire i dati separando i centesimi con il punto anziche' con la
> virgola, e' corretto perche' tali valori sono indicati come decimal ma
> per l'utente e' piu' normale separare i decimali utilizzando la
> virgola.
> L'unico modo sarebbe quello di intercettare i valori e convertirli in
> qualche modo?

Stai parlando di Rails?
Per le date puoi usare la <%=l MyModel.date %>, dai un'occhiata qui:
http://guides.rubyonrails.org/i18n.html#adding-dat...
In generale I18n  quello che ti serve

Per la moneta esiste il metodo number_to_currency
http://api.rubyonrails.org/classes/ActionView/Help...
B0f6d8efcf671ea3163449e231264cc4?d=identicon&s=25 Msan Msan (msan)
on 2012-04-26 00:18
(Received via mailing list)
2012/4/25 Tommaso Visconti <tommaso.visconti@gmail.com>:
>> rappresentazione che vedo nel capo string quando richiamo il form, ad
>
>
> Stai parlando di Rails?
> Per le date puoi usare la <%=l MyModel.date %>, dai un'occhiata qui:
> http://guides.rubyonrails.org/i18n.html#adding-dat...
> In generale I18n  quello che ti serve
>
> Per la moneta esiste il metodo number_to_currency
>
http://api.rubyonrails.org/classes/ActionView/Help...

Si lo so, ma supponi di avere un campo in un form dove l'utente deve
inserire un valore corrispondente alla valuta 1.000.022,12 euro.
L'utente e' costretto ad inserire 1000022.12, mentre si aspetta di
poter inserire 1000022,12.
Poi certo, il valore lo formatto con l'helper number_to_currency in
fase di visualizzazione.
C52840839e5302ee59e4e39ffffdea83?d=identicon&s=25 Alessio Caiazza (nolith)
on 2012-04-26 09:18
(Received via mailing list)
> poter inserire 1000022,12.
> Poi certo, il valore lo formatto con l'helper number_to_currency in
> fase di visualizzazione.

Non so se esiste un metodo rapido per farlo, io avevo un'applicazione in
cui dovevo tenere dei prezzi su DB in formato intero (in centesimi) ma
mostrarli all'utente come euro e con la virgola.

class Item < ActiveRecord::Base
  PRICE_REGEXP = /^\d+(\.\d{1,2})?$/

  def price=(value)
    raw = value.to_s.gsub(',','.').strip
    to_write = raw
    if raw =~ PRICE_REGEXP
      to_write = (raw.to_f * 100).to_i
    end
    write_attribute(:price, to_write)
  end

  def price
    p = read_attribute(:price)
    sprintf("%.2f", p/100.0).gsub('.', ',') unless p.nil?
  end
end


Se usi una colonna decimal non ti serve di moltiplicare e dividere per
100. Ricordati di mettere comunque un validatore sul campo.



Alessio
--
Alessio "nolith" Caiazza
il sapere umano appartiene al mondo.
GPG 440C5437
B0f6d8efcf671ea3163449e231264cc4?d=identicon&s=25 Msan Msan (msan)
on 2012-04-26 09:55
(Received via mailing list)
2012/4/26 Alessio Caiazza <nolith@abisso.org>:
>> poter inserire 1000022,12.
>  to_write = raw
> end
>
>
> Se usi una colonna decimal non ti serve di moltiplicare e dividere per 100.
Ricordati di mettere comunque un validatore sul campo.

Si vedo che fai una gsub, cosi' avevo pensato io, la mia richiesta era
volta a capire se ci fosse qualche soluzione piu' immediata sia per il
problema della valuta sia per quello delle date se uso campi string e
non l'helper date_select.
8bc38b2e4e00c4df2a7f1dcdc46802f9?d=identicon&s=25 Riccardo Lucatuorto (riccardo_l)
on 2012-04-26 09:58
(Received via mailing list)
On Thu, Apr 26, 2012 at 9:17 AM, Alessio Caiazza <nolith@abisso.org>
wrote:

> > poter inserire 1000022,12.
> 100. Ricordati di mettere comunque un validatore sul campo.
>
>
>
Scusate, segnalo anche questa gemma che pu forse tornare utile

http://money.rubyforge.org/


--
Riccardo
--
L'esperienza  quello che ottieni quando, non ottieni quello che
desideri.
Please log in before posting. Registration is free and takes only a minute.
Existing account

NEW: Do you have a Google/GoogleMail, Yahoo or Facebook account? No registration required!
Log in with Google account | Log in with Yahoo account | Log in with Facebook account
No account? Register here.