17

Hat jemand maximale Feldlängen für TextfelderStellen maximale Länge in Textfeld in RoR

Wie kann ich die maximale Länge eines Textfeldes auf gesetzt verwaltet. Hier ist der Code iam

<%= text_field_tag(:create_text), :input_html => {:maxlength => 15, :size => 40} %> 

verwenden, aber ich kann nicht die maximale Anzahl von Zeichen zu setzen scheinen, die in das Feld eingegeben werden kann.

+0

Warum verwenden Sie die input_html Hash? Sie sollten die Parameter direkt übergeben, Sie verwenden kein einfaches Formular (f.input). –

Antwort

-4

Sie können versuchen, diese

<%=text_field_tag 'create_text',:size=>40 %> 
+0

Das ist falsch. Siehe meine Antwort. –

9

Im text_field_tag ​​ Aufruf:

: Die Größe bezieht sich auf die physikalische Länge der Textbox. Es wird groß genug sein, damit viele Zeichen in der Box sichtbar sind. Aber der Benutzer kann noch mehr eingeben.

: maxlength ist die maximale Anzahl von Zeichen, die der Benutzer eingeben kann, unabhängig von der physischen Größe des Textfelds. Das Textfeld kann größer oder kleiner sein. Wenn Sie jedoch Folgendes festlegen: maxlength => 5, können nur 5 Zeichen eingegeben werden.

Wenn dies eine feste Grenze für die Daten in der Datenbank ist, sollten Sie auch eine Validierung festlegen. Dies verhindert, dass Sie beispielsweise mehr Zeichen in Ihrem Rails-Code eingeben.

validates_length_of :column_name, :maximum => 5 

schließlich für einen Gürtel und Hosenträger-Ansatz und sogar Code zu verhindern, die von der Einrichtung einen schlechten Wert für die Datenbank geht, können Sie es auf Datenbankebene durchzusetzen. In einigen Fällen kann anderer Code als Ihre Rails-App die Datenbank aktualisieren. Dies verhindert auch in diesem Fall schlechte Daten.

Hinzufügen einer Spalte in einer Migration Sie es wie folgt tun:

add_column :table_name, :column_name, :string, :limit => 30