17

Czy ktoś udało się ustawić maksymalnych długościach pól na pól tekstowychustawiona maksymalna długość w polu tekstowym w RoR

Jak mogę ustawić maksymalną długość pola tekstowego. Oto iam kod używając

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

ale nie może wydawać się, aby ustawić maksymalną liczbę znaków, które mogą być wpisane do dziedzinie.

+0

Dlaczego używacie hash input_html? Powinieneś przekazać parametry bezpośrednio, nie używasz prostego formularza (f.input). –

Odpowiedz

-4

można spróbować tego

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

To jest złe. Zobacz moją odpowiedź. –

9

W text_field_tag ​​ rozmowy:

: rozmiar odnosi się do fizycznej długości pola tekstowego. Będzie wystarczająco duży, aby umożliwić wyświetlanie wielu znaków w polu. Ale użytkownik może jeszcze wprowadzić więcej.

: maksymalna długość to maksymalna liczba znaków, które użytkownik może wprowadzić, niezależnie od fizycznego rozmiaru pola tekstowego. Pole tekstowe może być większe lub mniejsze, ale jeśli ustawisz: maxlength => 5, będą mogły wprowadzić tylko 5 znaków.

Jeśli jest to twardy limit dla danych w bazie danych, należy ustawić sprawdzanie poprawności. Zapobiega to na przykład ustawianiu go na więcej znaków w kodzie Rails.

validates_length_of :column_name, :maximum => 5 

Wreszcie na pasy i szelki podejścia do zapobiegania i nawet kod, który wykracza przeciwko bazie od ustawiania złą wartość, można wymusić go na poziomie bazy danych. W niektórych przypadkach inny kod niż aplikacja Rails może aktualizować bazę danych. Zapobiega to złym danym nawet w tym przypadku.

Dodanie kolumny w migracji to zrobić tak:

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