3

私は、多くのフィールドに「該当するものをすべて選択する」オプションが必要な形式的なフォームを設定しています。(参考までに私はスリムを使用していますが、必要に応じてこれを通常のレールに戻すことができます)。

例えば。私はこの入力を定義します:

    = f.input :categories_list, :label => _("Commonly Found In"), :as => :check_boxes, :multiple => true, :collection => Category.all

これにより、一連のチェックボックスが作成され、存在するチェックボックスのみが表示されます。しかし、1つ(または2つまたは3つ)を選択すると、作成しているモデルの作成が中断され、categories_listフィールドが次のように送信されることに気付きました。

  "categories_list"=>["", "1", "2"],

の代わりに:

  "categories_list"=>["1", "2"],

なぜこれなのか誰か知っていますか?これはformtasticのバグですか?さらに関連するコードを投稿する必要があるかどうかをお知らせください。私は本当にこれを機能させる方法を知りたいです。

4

1 に答える 1

4

これは、すべての選択をクリアできるようにするためです。配列の先頭に空白/空の値がないと、ブラウザはcategories_listパラメータをまったく設定せず、既存のチェックボックスはオンのままになります。

設定されていないと、ユーザーが何を意図していたのかわかりcategories_listません。

この空白のオプションが機能しない場合は、コントローラーまたはモデルのパラメーターからフィルターで除外する必要があります(ただし、問題を閉じる前に、編集時に問題を再現することをお勧めします)。

于 2012-07-28T06:28:52.717 に答える