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
Dlaczego używacie hash input_html? Powinieneś przekazać parametry bezpośrednio, nie używasz prostego formularza (f.input). –