55

私はこのコードを持っています:

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

Choices ["Categories"]は、key=>valueペアの単なるハッシュです。

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

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

のようなもの:allow_blank_option => false

SimpleFormがそれを検出することを期待して、この属性のプレゼンス検証を試みましたが、役に立ちませんでした。

4

3 に答える 3

102

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

= f.input :category, :as => :select, :label => false, :collection => Choices["Categories"], include_blank: false, include_hidden: false
于 2013-02-28T18:54:23.823 に答える
2

または、「types」という名前のパラメーターを想定して、モデルのコールバック アクションをカスタマイズして、配列パラメーター内の空の文字列を削除することもできます。

before_validation :remove_empty_string

def remove_empty_string
  types.reject! { |l| l.empty? }
end
于 2015-03-18T22:19:48.970 に答える