web-dev-qa-db-fra.com

Définir la longueur maximale dans le champ Texte dans RoR

Quelqu'un at-il réussi à définir des longueurs de champ maximales pour les champs de texte

Comment puis-je définir la longueur maximale d'un champ de texte. Voici le code que j'utilise

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

mais je n'arrive pas à définir le nombre maximum de caractères pouvant être saisis dans le champ.

22
divz

Voici comment vous pouvez le faire:

<%= text_field_tag 'create_text', nil, :maxlength => 15, :size => 40 %>

Source: http://api.rubyonrails.org/classes/ActionView/Helpers/FormTagHelper.html#method-i-text_field_tag

41
M. Cypher

Dans l'appel text_field_tag:

: taille se rapporte à la longueur physique de la zone de texte. Il sera assez grand pour permettre à autant de caractères d'être visibles dans la boîte. Mais l'utilisateur peut toujours entrer plus.

: maxlength est le nombre maximum de caractères que l'utilisateur peut entrer, quelle que soit la taille physique de la zone de texte. La zone de texte peut être plus grande ou plus petite, mais si vous définissez: maxlength => 5, ils ne pourront saisir que 5 caractères.

S'il s'agit également d'une limite stricte pour les données de la base de données, vous devez définir une validation. Cela vous empêche, par exemple, de le définir sur plus de caractères dans votre code Rails.

validates_length_of :column_name, :maximum => 5

Enfin, pour une approche par ceintures et bretelles et pour empêcher même le code qui va à l'encontre de la base de données de définir une mauvaise valeur, vous pouvez l'imposer au niveau de la base de données. Dans certains cas, un autre code que votre application Rails peut mettre à jour la base de données. Cela empêche les mauvaises données même dans ce cas.

En ajoutant une colonne dans une migration, vous le faites comme ceci:

add_column :table_name, :column_name, :string, :limit => 30
14
Dan Barron
 <%= text_field_tag :"description", '', maxlength: 5   %>
<input type="text" name="description" id="description" value="" maxlength="5">
1
vidur punj