Sto riscontrando un problema con questa soluzione. Se ho una dichiarazione come questa:
t.float :latitude, :limit => 30
tutto sembra grande: lo schema del database mostra la colonna è dichiarato come un doppio. Il problema è che schema.rb non ha alcun valore: limit, quindi quando lo schema è clonato nell'ambiente di test, la colonna diventa float anziché double. I test unitari falliscono perché non c'è abbastanza accuratezza nella colonna.
Se guardate la documentazione per ActiveRecord column definitions quello che si trova è questo:
: limite - Richieste una lunghezza massima di colonna. Questo è il numero di caratteri per: stringa e: colonne di testo e numero di byte per : binario e: colonne di numeri interi.
È silenzioso sul tema dei galleggianti. Dal codice risulta che si tratta di un effetto collaterale su come: il limite è supportato dal fatto che questa soluzione funzioni. Sembra che ci sia un bug nella generazione di schema.rb, altrimenti non è mai stato concepito per essere usato in questo modo.
Temo che la risposta potrebbe essere che il tipo di dati decimali (che non mi interessa) è la soluzione completamente supportata.
fonte
2011-12-12 01:58:02
non lavoro per me, il limite è spogliato e non presente nel mio schema.rb (Rails 4.0) – gamov