2013-02-28 4 views
36

によって生成された選択フィールドの空白のオプションを削除します。私は、コードのこの作品持つSimpleForm

= f.input :category, :as => :select, :label => false, :collection => Choices["Categories"] 

選択肢[「カテゴリ」]キー=>値のペアの単なるハッシュです。

SimpleFormは、必要なすべてのオプションを含む選択フィールドを生成しますが、最初のオプションも空白にします。
この空白のオプションは、SimpleFormによって生成されたすべての選択フィールドにあります。

しかし、私は空白のオプションを望んでいません。それを取り除く方法はありますか?

何かのようなもの:allow_blank_option => false

この属性の存在を検証しようとしましたが、SimpleFormがその属性を検出することを望んでいましたが、役に立たなかったのです。 「タイプ」名前のパラメータを想定し、配列パラメーター内の任意の空の文字列を削除するには、モデル内のアクションをコールバック

= f.input :category, :as => :select, :label => false, :collection => Choices["Categories"], include_blank: false, include_hidden: false 

答えて

74

あなたがinclude_blank: false, include_hidden: falseオプションを渡すことができます

before_validation :remove_empty_string 

def remove_empty_string 
    types.reject! { |l| l.empty? } 
end 
+0

シンプルフォーム3.4.0で動作します。ありがとう! – Hendrik

+1

誰かがすべてのオプションを削除すると機能しません! – rony36

+0

は私のために働いていません。3.4 – letz

0

またはあなたがカスタマイズすることができます::

関連する問題