テキストフィールドの最大フィールド長を設定できた人はいますか
テキストフィールドの最大長を設定するにはどうすればよいですか。これはiamが使用しているコードです
<%= text_field_tag(:create_text), :input_html => {:maxlength => 15, :size => 40} %>
フィールドに入力できる最大文字数を設定できないようです。
これを行う方法は次のとおりです。
<%= text_field_tag 'create_text', nil, :maxlength => 15, :size => 40 %>
ソース: http://api.rubyonrails.org/classes/ActionView/Helpers/FormTagHelper.html#method-i-text_field_tag
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
<%= text_field_tag :"description", '', maxlength: 5 %>
<input type="text" name="description" id="description" value="" maxlength="5">