27

テキストフィールドの最大フィールド長を設定できた人はいますか

テキスト フィールドの最大長を設定する方法を教えてください。これが私が使用しているコードです

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

しかし、フィールドに入力できる最大文字数を設定できないようです。

4

4 に答える 4

47

これを行う方法は次のとおりです。

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

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

于 2013-04-23T10:12:32.007 に答える
19

text_field_tag呼び出しでは:

:sizeは、テキスト ボックスの物理的な長さに関連します。ボックス内に多くの文字が表示されるのに十分な大きさになります。ただし、ユーザーはさらに入力できます。

:maxlengthは、テキスト ボックスの物理的なサイズに関係なく、ユーザーが入力できる最大文字数です。テキスト ボックスは大きくも小さくもできますが、:maxlength => 5 に設定すると、5 文字しか入力できなくなります。

これがデータベース内のデータにも必要なハード制限である場合は、検証を設定する必要があります。これにより、たとえば、Rails コードでより多くの文字を設定することができなくなります。

validates_length_of :column_name, :maximum => 5

最後に、ベルトとサスペンダーのアプローチのために、データベースに反するコードであっても不正な値を設定しないようにするために、データベース レベルでそれを強制することができます。場合によっては、Rails アプリ以外のコードがデータベースを更新することがあります。これにより、この場合でも不良データが防止されます。

移行に列を追加するには、次のようにします。

add_column :table_name, :column_name, :string, :limit => 30
于 2013-12-18T20:19:08.410 に答える
-4

あなたはこれを試すことができます

<%=text_field_tag 'create_text',:size=>40 %>
于 2013-04-23T12:15:40.093 に答える