2013-02-28 16 views
36

Mam ten fragment kodu:usunąć pustą opcję Wybierz pole, które zostały wygenerowane przez SimpleForm

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

Choices [ „Kategorie”] to tylko skrót najważniejszych par => wartość.

SimpleForm generuje pole wyboru ze wszystkimi potrzebnymi opcjami, ale powoduje również, że pierwsza opcja jest pusta.
Ta pusta opcja jest obecna we wszystkich wybranych polach, które zostały wygenerowane przez SimpleForm.

Ale nie chcę mieć pustej opcji. Czy istnieje sposób, aby się go pozbyć?

Coś takiego jak :allow_blank_option => false?

Próbowałem wprowadzić walidację obecności tego atrybutu, mając nadzieję, że SimpleForm go wykryje, ale to nie pomogło.

Odpowiedz

74

można przekazać include_blank: false, include_hidden: false opcję:

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

Utwory działają z prostym formularzem 3.4.0. Dzięki! – Hendrik

+1

to nie działa, gdy ktoś usunie wszystkie opcje! – rony36

+0

nie działa dla mnie w 3.4 – letz

0

lub można dostosować oddzwonić działania w modelu, aby usunąć pusty łańcuch w parametrze tablicy, przy założeniu, że parametr o nazwie „typów”:

before_validation :remove_empty_string 

def remove_empty_string 
    types.reject! { |l| l.empty? } 
end 
Powiązane problemy