2009-02-18 8 views
10

Podczas korzystania z <% = f.datetime_select: start%> dla "nowego" formularza obiektu, jak ustawić opcje, aby domyślnie nie wybierać daty, ale raczej wartość zerową/pustą? Pole w pokrewnym modelu może opcjonalnie mieć wartość NULL, ale domyślnie formant datetime_select nie ma opcji zerowej.Wartość pusta na datetime_select?

Odpowiedz

27

Myślę, że chcesz:

f.datetime_select :start, :include_blank => true

Kiedy start jest zerowa, pola wybierze opcję pustą. Pozwala to również użytkownikom na nie wpisać datę.

Aby uzyskać szczegółowe informacje, patrz: the documentation for date_select.

+0

ah, tak, to jest znacznie lepsze. dzięki Luke. –

+0

nadal dobre do szyn 4.2.4! –

0

Będziesz chciał użyć opcji: prompt.

od docs Rails:

# Generates a datetime select with a custom prompt. Use :prompt=>true for generic prompts. 
    datetime_select("post", "written_on", :prompt => {:day => 'Choose day', :month => 'Choose month', :year => 'Choose year'}) 
    datetime_select("post", "written_on", :prompt => {:hour => true}) # generic prompt for hours 
    datetime_select("post", "written_on", :prompt => true) # generic prompts for all 
+0

Wydłużenie próby nie sprawdziło się. <% = f.datetime_select: start,: prompt => {: day => 'Wybierz dzień',: miesiąc => 'Wybierz miesiąc',: rok => 'Wybierz rok'}%> Czy występuje błąd składni tutaj? –

+0

Możesz użyć pomocnika wanilii: <% = datetime_select: my_object,: start,: prompt => {: day => 'Wybierz dzień',: miesiąc => 'Wybierz miesiąc',: rok => 'Wybierz rok'} %> –

Powiązane problemy