Dal manuale di precisione :
I tre tipi di cui stanno parlando sono char(n) , varchar(n) e text . Il suggerimento sta essenzialmente dicendo che:
char(n)è il più lento a causa del riempimento vuoto e della necessità di controllare il vincolo di lunghezza.varchar(n)di solito è nel mezzo perché è necessario controllare il vincolo di lunghezza.text(AKAvarcharsenzan) è solitamente il più veloce perché non ci sono costi aggiuntivi.
A parte il riempimento vuoto per char(n) e controllo della lunghezza per char(n) e varchar(n) , sono tutti gestiti allo stesso modo dietro le quinte.
Con ActiveRecord, t.string è un varchar e t.text è text . Se non hai vincoli di lunghezza rigida sulle tue stringhe, usa semplicemente t.text con PostgreSQL.