Ho un modello commento in cui mi limito la lunghezza massima di un commento del tipo:Rails, convalidare maxlength di campo di input
validates_length_of :comment, :maximum => 500
A mio avviso ho campo di inserimento dichiarato:
<%= f.text_area :comment,:as => :text, :maxlength => 500 %>
Il il limite sul campo di input funziona come previsto, limita al massimo 500 caratteri.
Tuttavia, il limite del modello non funziona come previsto. Un testo di 500 caratteri con newline fornisce un errore di convalida. Il modello conta le nuove righe come due caratteri (e possibili altri caratteri). Così
Questo ingresso funzionerà, no a capo:
abc abc abc abc....
Questo non:
abc
abc
.
.
C'è un modo semplice per fare validates_length_of a contare a capo (e altri) come un carattere? .
=== === Result1
ho unito le grandi risposte da Jon e Dario e ha creato questo:
before_validation(:on => :create) do
self.comment = comment.gsub("\r\n","\n") if self.comment
end