4

SimpleFormgemを使用して作成したフォームの入力のmaxlengthhtml属性を設定したいと思います。フォームを作成するときにmaxlength属性を手動で渡すことで、これを実行できることを知っています。例:

<%= f.input :username, input_html: { maxlength: 20 } %>

しかし、SimpleForm構成ファイルのコメントによると、max-length検証が与えられたときに、このhtml属性を文字列属性の入力タグに自動的に追加するmaxlength拡張機能を有効にする必要があるため、これは望ましくありません。

## Optional extensions
# They are disabled unless you pass `f.input EXTENSION_NAME => :lookup`
# to the input. If so, they will retrieve the values from the model
# if any exists. If you want to enable the lookup for any of those
# extensions by default, you can change `b.optional` to `b.use`.

# Calculates maxlength from length validations for string inputs
b.use :maxlength

残念ながら、言及された2つの可能性のいずれも機能しません。maxlength拡張機能の使用を完全に誤解しましたか?

4

1 に答える 1

12

simple_form.rb構成ファイルを次のように編集する場合は正しいです。

b.use :maxlength

フォームのmax-lengthは、モデルの値を使用します。

simple_formをTwitterBootstrapと組み合わせて使用​​します。フォームにこの効果を持たせるには、この行を構成ファイルsimple_form_bootstrap.rbにも挿入する必要がありました。

# Use this setup block to configure all options available in SimpleForm.
SimpleForm.setup do |config|
   config.wrappers :bootstrap, :tag => 'div', :class => 'control-group', :error_class => 'error' do |b|

   # Calculates maxlength from length validations for string inputs
   b.use :maxlength
   ...
于 2013-03-08T08:54:37.127 に答える